Definizione degli eventi in C#:
Una classe o un oggetto può notificare ad altre classi o oggetti ciò che è accaduto attraverso eventi. La classe che invia (o causa) l'evento è chiamata "emittente" e la classe che riceve (o elabora) l'evento è chiamata "abbonato".
Gli eventi presentano le seguenti caratteristiche:
- L'editore decide quando riaprire l'evento e l'abbonato decide quale azione compiere in risposta all'evento.
- Un evento può avere più iscritti. Un abbonato può gestire più eventi provenienti da più emittenti.
- Gli eventi senza abbonati non vengono mai chiamati.
- Gli eventi sono spesso utilizzati per informare gli utenti delle azioni, come clic sui pulsanti o azioni di selezione dei menu nelle interfacce grafiche.
- Se un evento ha più abbonati, vengono chiamati contemporaneamente più gestori di eventi quando l'evento viene sollevato. Per chiamare eventi asincronamente, vedi Chiamata di metodi di sincronizzazione usando asincroni.
- I thread di sincronizzazione degli eventi possono essere sfruttati.
La parola chiave evento viene usata per dichiarare eventi nella classe publisher.
MS Link:Il login del link ipertestuale è visibile.
In realtà non c'è differenza tra il metodo di scrittura degli eventi A e il metodo B!
Puoi fare riferimento a:Il login del link ipertestuale è visibile.
EventHandler<T>Rappresenta un metodo che accetta due parametri (object sender, TEventArgs e) e restituisce un tipo void. dove TEventArgs deve essere un tipo derivato dalla classe EventArgs. Quest'ultimo parametro viene utilizzato per memorizzare i parametri necessari per l'evento.
EventArgsè la classe base di una classe che contiene dati di evento, che non contiene dati di evento, ed è utilizzata da eventi che non trasmettono informazioni di stato al gestore di eventi quando l'evento viene sollevato. Se il gestore di eventi ha bisogno di informazioni di stato, l'applicazione deve derivare una classe da questa classe per contenere i dati.
Volatile. Leggi .NET 4.0 non è supportato
// Sommario: I riferimenti agli oggetti vengono letti dal campo specificato. Quando è necessario sul sistema, verrà inserita una barriera di memoria per impedire al processore di riordinare le operazioni di memoria, come mostrato di seguito: se questo metodo appare nel codice dopo aver eseguito una lettura/scrittura, il processore non può spostarlo prima di questo metodo. // Parametri: Posizione: campi da leggere. // Parametri di tipo: T: Il tipo di campo da leggere. Questo deve essere il tipo di riferimento, non il tipo di valore. // Risultati dei risultati: Leggi il riferimento T. Questo riferimento è scritto da qualsiasi processore nel computer, indipendentemente dal numero di processori o dallo stato della cache del processore. [AffidabilitàContratto(Coerenza.NonStatoCorrotto, Cer.Successo)] [SicurezzaCriticaSicurezzaCritica] [TargetedPatchingOptOut("Performance critical to inline across the NGen image boundaries")] T Reading statico pubblico <T>(rif. Posizione T) dove T : classe;
|