Definitie van gebeurtenissen in C#:
Een klasse of object kan andere klassen of objecten op de hoogte stellen van wat er tijdens gebeurtenissen is gebeurd. De klasse die het evenement verzendt (of veroorzaakt) wordt de "uitgever" genoemd en de klasse die het evenement ontvangt (of verwerkt) wordt de "abonnee" genoemd.
Evenementen hebben de volgende kenmerken:
- De uitgever bepaalt wanneer het evenement wordt opgeroepen, en de abonnee bepaalt welke actie hij moet uitvoeren als reactie op het evenement.
- Een evenement kan meerdere abonnees hebben. Een abonnee kan meerdere gebeurtenissen van meerdere uitgevers afhandelen.
- Evenementen zonder abonnees worden nooit aangekondigd.
- Gebeurtenissen worden vaak gebruikt om gebruikers te informeren over acties, zoals knopklikken of menuselectieacties in grafische gebruikersinterfaces.
- Als een gebeurtenis meerdere abonnees heeft, worden meerdere gebeurtenishandlers gelijktijdig aangeroepen wanneer het evenement wordt opgeroepen. Om gebeurtenissen asynchroon aan te roepen, zie Synchronisatiemethoden aanroepen met asynchrone.
- Gebeurtenissynchronisatiethreads kunnen worden benut.
Het event keyword wordt gebruikt om events in de publisher-klasse aan te geven.
MS Link:De hyperlink-login is zichtbaar.
Er is eigenlijk geen verschil tussen event writing method A en writing method B!
U kunt verwijzen naar:De hyperlink-login is zichtbaar.
EventHandler<T>Stelt een methode voor die twee parameters accepteert (objectzender, TEventArgs e) en een void-type teruggeeft. waarbij TEventArgs een type moet zijn dat is afgeleid van de EventArgs-klasse. Deze laatste parameter wordt gebruikt om de parameters op te slaan die voor het evenement nodig zijn.
EventArgsis de basisklasse van een klasse die gebeurtenisgegevens bevat, die geen gebeurtenisgegevens bevat, en wordt gebruikt door gebeurtenissen die geen statusinformatie doorgeven aan de gebeurtenishandler wanneer het evenement wordt opgeroepen. Als de event handler statusinformatie nodig heeft, moet de applicatie een klasse uit deze klasse afleiden om de data te bewaren.
Volatiel. Lees .NET 4.0 wordt niet ondersteund
// Samenvatting: Objectreferenties worden gelezen uit het opgegeven veld. Wanneer deze op het systeem nodig is, wordt er een geheugenbarrière geplaatst om te voorkomen dat de processor geheugenbewerkingen herordent, zoals hieronder weergegeven: Als deze methode in de code verschijnt na een lees/schrijf, kan de processor deze niet eerder verplaatsen dan deze methode. // Parameters: Locatie: velden om te lezen. // Typeparameters: T: Het type veld dat gelezen moet worden. Dit moet het referentietype zijn, niet het waardetype. // Retourresultaten: Lees de referentie T. Deze referentie wordt geschreven door elke processor in de computer, ongeacht het aantal processors of de status van de processorcache. [Betrouwbaarheidscontract(Consistentie.ZalNietCorruptZijn, Cer.Succes)] [SecuritySafeCritical] [TargetedPatchingOptOut("Prestaties cruciaal om te inline over NGen-afbeeldingsgrenzen")] publieke statische T Read <T>(ref T locatie) waar T : klasse;
|