Tapahtuma (laskenta) - Event (computing)

In ohjelmointi ja ohjelmistojen suunnittelu , An tapahtuma on toimeen tai sattuu tunnustanut ohjelmisto , usein peräisin asynkronisesti ulkoisesta ympäristöstä, joita voidaan käsitellä ohjelmiston. Tietokonetapahtumia voi luoda tai laukaista järjestelmä, käyttäjä tai muuten. Tyypillisesti tapahtumat käsitellään synkronisesti kanssa ohjelman kulkua ; ohjelmistolla voi olla yksi tai useampia erillisiä paikkoja, joissa tapahtumia käsitellään, usein tapahtumasilmukka . Tapahtumalähde sisältää käyttäjän, joka voi olla vuorovaikutuksessa ohjelmiston kanssa tietokoneen oheislaitteiden kautta - esimerkiksi kirjoittamalla näppäimistölle . Toinen lähde on laitteisto , kuten ajastin . Ohjelmisto voi myös laukaista oman tapahtumasarjansa tapahtumasilmukkaan, esimerkiksi viestimään tehtävän suorittamisesta. Ohjelmistojen, jotka muuttavat käyttäytymistään vastauksena tapahtumiin, sanotaan olevan tapahtumavetoisia , usein tavoitteena olla vuorovaikutteinen .

Kuvaus

Tapahtumaohjattuja järjestelmiä käytetään tyypillisesti silloin, kun on olemassa jonkinlainen asynkroninen ulkoinen toiminta, jonka ohjelman on käsiteltävä; esimerkiksi käyttäjä, joka painaa hiiren painiketta. Tapahtumavetoinen järjestelmä ajaa tyypillisesti tapahtumasilmukkaa , joka odottaa jatkuvasti tällaisia ​​toimintoja, esimerkiksi tuloa laitteilta tai sisäisiä hälytyksiä. Kun jokin näistä tapahtuu, se kerää tietoja tapahtumasta ja lähettää tapahtuman tapahtumankäsittelyohjelmistolle , joka käsittelee sen.

Ohjelma voi ohittaa tapahtumat, ja voi olla kirjastoja lähettämään tapahtuman useille käsittelijöille, jotka voidaan ohjelmoida kuuntelemaan tiettyä tapahtumaa. Data liittyy tapahtumaan vähintään täsmennetään millaista tapauksessa, että se on, mutta voi sisältää muita tietoja, kuten silloin, kun se on tapahtunut, kuka tai mikä aiheutti sen tapahtua, ja ylimääräinen toimittamat tiedot tapahtuman lähteen käsittelijälle siitä, miten tapahtuma tulisi käsitellä.

Tapahtumia käytetään tyypillisesti käyttöliittymissä, joissa toiminta ulkomaailmassa (hiiren napsautukset, ikkunan koon muuttaminen, näppäimistön painallukset, muiden ohjelmien viestit jne.) Hoidetaan ohjelmana sarjana tapahtumia. Moniin ikkunoiviin ympäristöihin kirjoitetut ohjelmat koostuvat pääasiassa tapahtumankäsittelijöistä.

Tapahtumia voidaan käyttää myös käskyjoukon tasolla, missä ne täydentävät keskeytyksiä . Keskeytyksiin verrattuna tapahtumia käsitellään tavallisesti synkronisesti: ohjelma odottaa nimenomaisesti tapahtuman palvelemista (tyypillisesti soittamalla käskyn, joka lähettää seuraavan tapahtuman), kun taas keskeytys voi vaatia palvelua milloin tahansa.

Delegoi tapahtumamalli

Delegoi tapahtumamalli. clickmeon tapahtuman lähde - tässä esimerkissä painike - ja se sisältää luettelon kuuntelijoista.

Tavallinen muunnelma olio-ohjelmoinnissa on edustajan tapahtumamalli , jonka tarjoaa jotkut graafiset käyttöliittymät . Tämä malli perustuu kolmeen kokonaisuuteen:

Lisäksi malli edellyttää, että:

  • jokaisen kuuntelijan on toteutettava käyttöliittymä tapahtumalle, jota se haluaa kuunnella
  • jokaisen kuuntelijan on rekisteröidyttävä lähteeseen ilmoittaakseen haluavansa kuunnella tapahtumaa
  • aina kun lähde generoi tapahtuman, se välittää sen rekisteröidyille kuuntelijoille käyttöliittymän protokollaa noudattaen.

C # käyttää tapahtumia erityisvaltuutettuina, jotka voi laukaista vain sen ilmoittava luokka. Tämä mahdollistaa paremman abstraktion , esimerkiksi:

delegate void Notifier (string sender);

class Model {
    public event Notifier notifyViews;
    public void Change() { ... notifyViews("Model"); }
}

class View1 {
    public View1(Model m) {
        m.notifyViews += new Notifier(this.Update1);
    }

    void Update1(string sender) {
        Console.WriteLine(sender + " was changed during update"); 
    }
}

class View2 {
    public View2(Model m) {
        m.notifyViews += new Notifier(this.Update2); 
    }

    void Update2(string sender) {
        Console.WriteLine(sender + " was changed"); 
    }
}

class Test {
    static void Main() {
        Model model = new Model();

        new View1(model);
        new View2(model);
        model.Change();
    }
}

Tapahtumakäsittelijä

Tietokoneiden ohjelmointi, An tapahtumakäsittelijä on soittopyynnön subroutine että kahvat työpanokseen ohjelmassa (kutsutaan kuuntelija on Java ja JavaScript ). Jokainen tapahtuma on pala sovellustason tietoa taustalla olevasta kehyksestä , yleensä GUI-työkalupakista . GUI-tapahtumia ovat näppäinpainallukset , hiiren liike, toimintovalinnat ja ajastimet, jotka ovat vanhentumassa. Alemmalla tasolla tapahtumat voivat edustaa uuden tiedon saatavuutta tiedoston tai verkkovirran lukemista varten. Tapahtumankäsittelijät ovat keskeinen käsite tapahtumavetoisessa ohjelmoinnissa .

Tapahtumat luovat kehys, joka perustuu alemman tason syötteiden tulkintaan, jotka voivat itse olla alemman tason tapahtumia. Esimerkiksi hiiren liikkeet ja napsautukset tulkitaan valikkovalinnoiksi. Tapahtumat ovat alun perin peräisin käyttöjärjestelmän tason toimista, kuten laitteiden tuottamista keskeytyksistä , ohjelmiston keskeytysohjeista tai kyselyn tilamuutoksista . Tällä tasolla keskeytyskäsittelijät ja signaalinkäsittelijät vastaavat tapahtumankäsittelijöitä.

Tapahtuman välittäjä käsittelee ensin luodut tapahtumat kehyksessä. Se hallitsee tyypillisesti tapahtumien ja tapahtumankäsittelijöiden välisiä yhteyksiä ja saattaa jonottaa tapahtumankäsittelijöitä tai tapahtumia myöhempää käsittelyä varten. Tapahtumien välittäjät voivat soittaa suoraan tapahtumankäsittelijöille tai odottaa tapahtumien poistamista tiedoilla käsittelijän suorittamisesta.

Tapahtuma-ilmoitus

Tapahtuma ilmoitus on termi, jota käytetään yhdessä viestinnän ohjelmistojen yhdistämiseen sovelluksia, jotka tuottavat pieniä viestejä (jäljempänä "tapahtumia") ja sovellukset, jotka valvovat niihin liittyvät edellytykset, ja voi ryhtyä toimenpiteisiin laukaisevat tapahtumat.

Tapahtumailmoitus on tärkeä ominaisuus nykyaikaisissa tietokantajärjestelmissä (käytetään ilmoittamaan sovelluksille, kun olosuhteet, joita he tarkkailevat), nykyaikaisissa käyttöjärjestelmissä (käytetään ilmoittamaan sovelluksille, kun heidän pitäisi ryhtyä toimiin, kuten päivittää ikkuna) ja moderneihin hajautettuihin järjestelmät, joissa tapahtuman tuottaja saattaa olla eri koneella kuin kuluttaja tai kuluttajat. Tapahtumailmoitusalustat on yleensä suunniteltu siten, että tapahtumia tuottavan sovelluksen ei tarvitse tietää, mitkä sovellukset kuluttavat niitä, tai edes kuinka monta sovellusta seuraa tapahtumavirtaa.

Sitä käytetään joskus synonyyminä public-tilaa , termi, joka liittyy yhteen tuoteryhmään, joka tukee tapahtumailmoitusta verkkoasetuksissa. Virtuaalinen tahdistaa mallia käytetään joskus antaa tapahtuman ilmoituksen järjestelmät ja julkaista-tilata järjestelmiä, joissa vahvempi vikasietoisuuden ja johdonmukaisuus takuita.

Käyttäjän luomat tapahtumat

On olemassa suuri määrä tilanteita tai tapahtumia, jotka ohjelma tai järjestelmä voi luoda tai reagoida. Joitakin yleisiä käyttäjien luomia tapahtumia ovat:

Hiirtapahtumat

Paikannuslaite voi aiheuttaa useita ohjelmisto tunnistaa osoitinlaitteen eleitä . Hiiri voi tuottaa useita hiirtapahtumia, kuten hiiren liikkeen (mukaan lukien liikesuunta ja etäisyys), hiiren vasen / oikea-painike ylös / alas ja hiiren pyörän liike tai näiden eleiden yhdistelmän.

Näppäimistötapahtumat

Näppäimistön tai näppäinyhdistelmän näppäimen painaminen tuottaa näppäimistötapahtuman, jonka avulla käynnissä oleva ohjelma voi vastata syötettyihin tietoihin, kuten mitä näppäimiä / painikkeita käyttäjä painaa.

Ohjaussauvan tapahtumat

Ohjaussauvan liikuttaminen tuottaa XY-analogisen signaalin. Heillä on usein useita painikkeita tapahtumien käynnistämiseksi. Jotkut suosittujen pelilaatikoiden peliohjaimet käyttävät ohjainta.

Kosketusnäytön tapahtumat

Kosketusnäytöllä luotuja tapahtumia kutsutaan yleisesti kosketustapahtumiksi tai eleiksi .

Laitetapahtumat

Laitetapahtumat sisältävät laitteen tekemän tai siihen kohdistuvan toiminnan, kuten ravistelun, kallistuksen, pyörimisen, liikkumisen jne.

Katso myös

Viitteet

Ulkoiset linkit