Definition von Ereignissen in C#:
Eine Klasse oder ein Objekt kann andere Klassen oder Objekte darüber informieren, was im Verlauf der Ereignisse passiert ist. Die Klasse, die das Ereignis sendet (oder verursacht), wird als "Herausgeber" bezeichnet, und die Klasse, die das Ereignis empfängt (oder verarbeitet), wird als "Abonnent" bezeichnet.
Die Veranstaltungen weisen folgende Merkmale auf:
- Der Publisher bestimmt, wann das Ereignis aktiviert wird, und der Abonnent bestimmt, welche Aktion als Reaktion auf das Ereignis ausgeführt wird.
- Eine Veranstaltung kann mehrere Abonnenten haben. Ein Abonnent kann mehrere Ereignisse von mehreren Emittenten abwickeln.
- Veranstaltungen ohne Abonnenten werden niemals ausgerufen.
- Ereignisse werden häufig verwendet, um Nutzer über Aktionen zu informieren, wie Tastenklicks oder Menüauswahlaktionen in grafischen Benutzeroberflächen.
- Wenn ein Ereignis mehrere Abonnenten hat, werden beim Aufrufen des Ereignisses gleichzeitig mehrere Ereignishandler aufgerufen. Um Ereignisse asynchron aufzurufen, siehe Calling Synchronization Methods Using Asynchronous.
- Event-Synchronisationsthreads können genutzt werden.
Das Ereignis-Schlüsselwort wird verwendet, um Ereignisse in der Publisher-Klasse zu deklarieren.
MS Link:Der Hyperlink-Login ist sichtbar.
Es gibt tatsächlich keinen Unterschied zwischen Event-Schreibmethode A und Schreibmethode B!
Sie können auf:Der Hyperlink-Login ist sichtbar.
EventHandler<T>Repräsentiert eine Methode, die zwei Parameter akzeptiert (Objektsender, TEventArgs e) und einen Void-Typ zurückgibt. wobei TEventArgs ein Typ sein muss, der von der EventArgs-Klasse abgeleitet ist. Letzterer Parameter wird verwendet, um die für das Ereignis erforderlichen Parameter zu speichern.
EventArgsist die Basisklasse einer Klasse, die Ereignisdaten enthält, die jedoch keine Ereignisdaten enthält, und wird von Ereignissen verwendet, die keine Zustandsinformationen an den Ereignishandler weitergeben, wenn das Ereignis ausgelöst wird. Wenn der Ereignishandler Zustandsinformationen benötigt, muss die Anwendung aus dieser Klasse eine Klasse ableiten, um die Daten zu speichern.
Volatile.Read .NET 4.0 wird nicht unterstützt
// Zusammenfassung: Objektreferenzen, die aus dem angegebenen Feld gelesen werden. Wenn sie auf dem System benötigt wird, wird eine Speicherbarriere eingesetzt, um zu verhindern, dass der Prozessor Speicheroperationen neu ordnet, wie unten gezeigt: Wenn diese Methode nach einem Lesen/Schreiben im Code erscheint, kann der Prozessor sie nicht vor dieser Methode verschieben. // Parameter: Lage: Felder zum Lesen. // Typparameter: T: Die Art des Feldes, das gelesen werden soll. Das muss der Referenztyp sein, nicht der Werttyp. // Rückgabeergebnisse: Lies die Referenz T. Diese Referenz wird von jedem Prozessor im Computer geschrieben, unabhängig von der Anzahl der Prozessoren oder dem Zustand des Prozessor-Caches. [Zuverlässigkeitsvertrag(Konsistenz.WirdNichtKorruptionStaat, Zer.Erfolg)] [SecuritySafeCritical] [TargetedPatchingOptOut("Performance critical to inline across NGen-Bildgrenzen)] öffentlich statisches T Read <T>(Ref T Standort), wo T : Klasse ist;
|