2011-10-12 46 views
2

我有一个单线程的C#程序集(我的客户端)使用相同的事件处理程序(一个简短的打印语句)来订阅多个事件。事件的发射器(服务器)是多线程的,因此可以在单线程客户端模拟地触发两个事件。C#事件处理单线程应用程序

.NET平台如何处理这个问题?它排队的事件?是否因为事件处理器忙碌而丢弃无法处理的事件?

背景

我问了previous question但我需要补充,我认为我可以做我的抽象问题,使之更加普遍和对他人有用的一个更好的工作的clarifiation判断。

回答

4

活动在C#和.NET不自然知道在所有线程。基本上,它们只是代表的额外封装层。处理程序将在“事件提升者”选择使用的任何线程上调用。它可以决定解雇一个单独的线程每个事件处理程序......或陆续它可以使用一个单独的线程调用所有处理程序,一个...也能做到这一点在其自己的“正常”线程同步。