ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 事件(C# 编程指南) [类](https://msdn.microsoft.com/zh-CN/library/0b0thckt.aspx)或对象可以通过事件向其他类或对象通知发生的相关事情。发送(或引发)事件的类称为“发行者”,接收(或处理)事件的类称为“订户”。 在典型的 C# Windows 窗体或 Web 应用程序中,可订阅由控件(如按钮和列表框)引发的事件。可使用 Visual C# 集成开发环境 (IDE) 来浏览控件发布的事件,选择要处理的事件。IDE 会自动添加空事件处理程序方法和订阅事件的代码。有关更多信息,请参见 [如何:订阅和取消订阅事件(C# 编程指南)](https://msdn.microsoft.com/zh-CN/library/ms366768.aspx)。 ## 事件概述 事件具有以下特点: * 发行者确定何时引发事件,订户确定执行何种操作来响应该事件。 * 一个事件可以有多个订户。一个订户可处理来自多个发行者的多个事件。 * 没有订户的事件永远也不会引发。 * 事件通常用于通知用户操作,例如,图形用户界面中的按钮单击或菜单选择操作。 * 如果一个事件有多个订户,当引发该事件时,会同步调用多个事件处理程序。要异步调用事件,请参见[Calling Synchronous Methods Asynchronously](https://msdn.microsoft.com/zh-CN/library/2e08f6yc.aspx)。 * 在 .NET Framework 类库中,事件是基于 [EventHandler](https://msdn.microsoft.com/zh-CN/library/system.eventhandler.aspx) 委托和 [EventArgs](https://msdn.microsoft.com/zh-CN/library/system.eventargs.aspx) 基类的。 ## 相关章节 有关更多信息,请参见: * [如何:订阅和取消订阅事件(C# 编程指南)](https://msdn.microsoft.com/zh-CN/library/ms366768.aspx) * [如何:发布符合 .NET Framework 准则的事件(C# 编程指南)](https://msdn.microsoft.com/zh-CN/library/w369ty8x.aspx) * [如何:在派生类中引发基类事件(C# 编程指南)](https://msdn.microsoft.com/zh-CN/library/hy3sefw3.aspx) * [如何:实现接口事件(C# 编程指南)](https://msdn.microsoft.com/zh-CN/library/ak9w5846.aspx) * [线程同步(C# 和 Visual Basic)](https://msdn.microsoft.com/zh-CN/library/ms173179.aspx) * [如何:使用字典存储事件实例(C# 编程指南)](https://msdn.microsoft.com/zh-CN/library/z4ka55h8.aspx) * [如何:实现自定义事件访问器(C# 编程指南)](https://msdn.microsoft.com/zh-CN/library/bb882534.aspx) ## C# 语言规范 有关详细信息,请参阅 [C# 语言规范](https://msdn.microsoft.com/zh-CN/library/ms228593.aspx)。该语言规范是 C# 语法和用法的权威资料。 ## 重要章节 [http://go.microsoft.com/fwlink/?LinkId=195395](#NotExistJustToMakeTheAElementVisible) [http://go.microsoft.com/fwlink/?LinkId=195369](#NotExistJustToMakeTheAElementVisible) [http://go.microsoft.com/fwlink/?LinkId=195418](#NotExistJustToMakeTheAElementVisible) [http://go.microsoft.com/fwlink/?LinkId=195412](#NotExistJustToMakeTheAElementVisible) ## 请参阅 [EventHandler](https://msdn.microsoft.com/zh-CN/library/system.eventhandler.aspx) [C# 编程指南](https://msdn.microsoft.com/zh-CN/library/67ef8sbd.aspx) [委托(C# 编程指南)](https://msdn.microsoft.com/zh-CN/library/ms173171.aspx) [在 Windows 窗体中创建事件处理程序](https://msdn.microsoft.com/zh-CN/library/dacysss4.aspx) [Multithreaded Programming with the Event-based Asynchronous Pattern](https://msdn.microsoft.com/zh-CN/library/hkasytyf.aspx)