Определение событий на C#:
Класс или объект могут уведомлять другие классы или объекты о произошедшем через события. Класс, который отправляет (или вызывает) событие, называется «эмитентом», а классом, который принимает (или обрабатывает) событие, называется «подписчиком».
Мероприятия обладают следующими характеристиками:
- Издатель определяет, когда поднять событие, а подписчик — какие действия выполнить в ответ на событие.
- На мероприятии может быть несколько подписчиков. Абонент может обрабатывать несколько событий от разных эмитентов.
- Мероприятия без подписчиков никогда не вызываются.
- События часто используются для информирования пользователей о действиях, таких как нажатия кнопок или выбор меню в графических интерфейсах.
- Если у события несколько подписчиков, одновременно вызываются несколько обработчиков событий при возникновении события. Чтобы вызывать события асинхронно, см. Методы синхронизации вызова с использованием асинхронного режима.
- Потоки синхронизации событий могут использоваться.
Ключевое слово event используется для объявления событий в классе издателя.
Ссылка на MS:Вход по гиперссылке виден.
На самом деле нет разницы между методом написания событий А и методом Б!
Вы можете обратиться к:Вход по гиперссылке виден.
EventHandler<T>Представляет метод, который принимает два параметра (отправитель объекта, TEventArgs e) и возвращает тип пустоты. где TEventArgs должен быть типом, производным из класса EventArgs. Последний параметр используется для хранения параметров, необходимых для события.
EventArgsявляется базовым классом класса, содержащего данные событий, которые не содержат данных событий, и используется для событий, не передающих информацию о состоянии обработчику событий при возникновении события. Если обработчику событий нужна информация о состоянии, приложение должно вывести класс из этого класса для хранения данных.
Volatile.Read .NET 4.0 не поддерживается
// Сводка: Ссылки на объекты читаются из указанного поля. Когда он необходим в системе, вводится барьер памяти, чтобы помешать процессору перестраивать операции памяти, как показано ниже: если этот метод появляется в коде после выполнения чтения/записи, процессор не может переместить его до этого метода. // Параметры: Местоположение: Поля для чтения. // Параметры типа: T: Тип поля, которую нужно читать. Это должен быть тип ссылки, а не тип значения. // Результаты возврата: Читайте ссылку на T. Эта ссылка пишется любым процессором в компьютере, независимо от количества процессоров или состояния кэша процессора. [НадежностьКонтракт(Согласованность.WillNotCorruptState, Cer.Success)] [БезопасностьБезопасностьКритический] [TargetedPatchingOptOut("Производительность критична для входящих границ изображения NGen")] публичный статический T Read <T>(ссылка на T location), где T : класс;
|