单线程应用中的c#事件处理
本文关键字:事件处理 应用 单线程 | 更新日期: 2023-09-27 18:10:58
我有一个单线程c#程序集(我的客户端),它使用相同的事件处理程序(一个简短的print语句)订阅多个事件。事件的发射器(服务器)是多线程的,因此可以在单线程客户机上同时触发两个事件。
.NET平台如何处理这个问题?它是否对事件进行排队?是否会删除由于事件处理程序已经很忙而无法处理的事件?
我问了一个之前的问题,但是从我需要补充的澄清来看,我认为我可以做得更好,把我的问题抽象出来,使它更普遍,对其他人更有用。
c#和。net中的事件根本不知道线程。基本上,它们只是委托的额外封装层。处理程序将在"事件引发者"选择使用的任何线程上调用。它可以决定在一个单独的线程上触发每个事件处理程序…或者它可以使用一个单独的线程调用所有处理程序,一个接一个…或者,它也可以在自己的"正常"线程中同步完成。