假设我有:
ethernet_adapter.PacketArrived += (s, e) =>
{
//long processing...
};
处理可能需要很长时间,而在处理过程中另一个数据包已经到达。接下来会发生什么:处理完成,然后触发另一个事件,或者可能立即触发新事件但在新线程上?
最佳答案
你不应该假设。它可以是任何东西,取决于事件是如何按类型(ethernet_adapter
对象)引发的。
如果是同步操作,则在当前操作进行之前不会引发新事件。
如果是异步操作,会立即引发新的事件。
关于c# - 事件和线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14041513/