Definicja zdarzeń w C#:
Klasa lub obiekt może powiadomić inne klasy lub obiekty o tym, co wydarzyło się poprzez zdarzenia. Klasa, która wysyła (lub powoduje) zdarzenie, nazywana jest "emitentem", a klasą, która odbiera (lub przetwarza) zdarzenie, "subskrybent".
Wydarzenia mają następujące cechy:
- Wydawca decyduje, kiedy podnieść zdarzenie, a subskrybent decyduje, jakie działania wykonać w odpowiedzi na to zdarzenie.
- Wydarzenie może mieć wielu subskrybentów. Subskrybent może obsługiwać wiele zdarzeń od różnych wydawców.
- Wydarzenia bez subskrybentów nigdy nie są ogłaszane.
- Zdarzenia są często wykorzystywane do informowania użytkowników o akcjach, takich jak kliknięcia przycisków czy wybieranie menu w graficznych interfejsach użytkownika.
- Jeśli zdarzenie ma wielu subskrybentów, jednocześnie wywołuje się wiele obsługiwaczy zdarzeń, gdy wydarzenie zostanie wywołane. Aby wywołać zdarzenia asynchronicznie, zobacz Wywoływanie metod synchronizacji z użyciem asynchroniczności.
- Wątki synchronizacji zdarzeń mogą być wykorzystywane.
Słowo kluczowe zdarzenia służy do deklarowania zdarzeń w klasie wydawcy.
Link do pani:Logowanie do linku jest widoczne.
Nie ma właściwie żadnej różnicy między metodą pisania wydarzeń A a metodą B!
Możesz odnieść się do:Logowanie do linku jest widoczne.
EventHandler<T>Reprezentuje metodę, która akceptuje dwa parametry (nadawca obiektu, TEventArgs e) i zwraca typ void. gdzie TEventArgs musi być typem wyprowadzonym z klasy EventArgs. Ten ostatni parametr służy do przechowywania parametrów wymaganych dla zdarzenia.
EventArgsjest klasą bazową klasy zawierającej dane zdarzeń, które nie zawierają danych zdarzeń i jest używana przez zdarzenia, które nie przekazują informacji o stanie do obsługi zdarzenia podczas podnoszenia zdarzenia. Jeśli obsługa zdarzeń potrzebuje informacji o stanie, aplikacja musi wyprowadzić klasę z tej klasy, aby przechowywać dane.
Volatile. Przeczytaj .NET 4.0 nie jest obsługiwany
// Streszczenie: Referencje do obiektów odczytywane są z określonego pola. Gdy jest to potrzebne w systemie, wprowadzana jest bariera pamięci, aby zapobiec zmianie kolejności operacji pamięci, jak pokazano poniżej: Jeśli ta metoda pojawi się w kodzie po wykonaniu odczytu/zapisu, procesor nie może jej przenieść przed tą metodą. // Parametry: Lokalizacja: pola do czytania. // Parametry typu: T: Rodzaj pola, które należy czytać. To musi być typ odniesienia, a nie typ wartości. // Wyniki zwrotów: Przeczytaj do źródła T. Ta referencja jest zapisywana przez dowolny procesor w komputerze, niezależnie od liczby procesorów czy stanu pamięci podręcznej procesora. [Kontrakt na niezawodność(Konsekwencja.NieSkorumpowany Państwo, Pewien.Sukces)] [BezpieczeństwoKrytyczne] [TargetedPatchingOptOut("Wydajność krytyczna dla inline over NGen image bounds")] publiczny statyczny T Read<T>(odniesienie do lokalizacji T), gdzie T : klasa;
|