Визначення подій у C#:
Клас або об'єкт можуть повідомляти інші класи або об'єкти про те, що сталося, через події. Клас, який надсилає (або спричиняє) подію, називається «емітентом», а клас, який приймає (або обробляє) подію, називається «підписником».
Події мають такі характеристики:
- Видавець визначає, коли підвищувати подію, а підписник визначає, яку дію виконати у відповідь на подію.
- Подія може мати кількох підписників. Абонент може обробляти кілька подій від кількох емітентів.
- Події без підписників ніколи не оголошуються.
- Події часто використовуються для інформування користувачів про дії, такі як натискання кнопок або дії вибору меню у графічних інтерфейсах.
- Якщо подія має кількох підписників, одночасно викликаються кілька обробників подій при створенні події. Щоб викликати події асинхронно, див. Методи синхронізації виклику з використанням асинхронності.
- Можна використовувати потоки синхронізації подій.
Ключове слово події використовується для оголошення подій у класі видавця.
Посилання на MS:Вхід за гіперпосиланням видно.
Насправді немає різниці між методом написання подій А та методом Б!
Ви можете звертатися до:Вхід за гіперпосиланням видно.
EventHandler<T>Представляє метод, який приймає два параметри (відправник об'єкта, TEventArgs e) і повертає тип порожнечі. де TEventArgs має бути типом, що походить від класу EventArgs. Останній параметр використовується для зберігання параметрів, необхідних для події.
EventArgsє базовим класом класу, який містить дані про події, що не містить подійних даних, і використовується подіями, які не передають інформацію про стан обробнику подій при створенні події. Якщо обробнику подій потрібна інформація про стан, додаток повинен отримати клас із цього класу, щоб зберігати дані.
Volatile.Read .NET 4.0 не підтримується
// Зведення: Посилання на об'єкти читаються з вказаного поля. Коли це потрібне в системі, вставляється бар'єр пам'яті, щоб запобігти зміні порядку операцій пам'яті, як показано нижче: якщо цей метод з'являється в коді після виконання читання/запису, процесор не може перемістити його до цього методу. // Параметри: Розташування: Поля для читання. // Параметри типу: T: Тип поля для читання. Це має бути тип посилання, а не тип значення. // Результати повернення: Прочитайте до посилання T. Це посилання записується будь-яким процесором у комп'ютері, незалежно від кількості процесорів або стану кешу процесора. [Контракт на надійність(Послідовність.НеКорупційний Стан, Сертифікат.Успіх)] [БезпекаБезпекаКритична] [TargetedPatchingOptOut("Критична продуктивність для введення через межі зображень NGen")] публічний статичний T Read<T>(посилання T location), де T : клас;
|