c# - 事件和线程

标签 c# .net multithreading events event-handling

假设我有:

ethernet_adapter.PacketArrived += (s, e) => 
{
    //long processing...
};

处理可能需要很长时间,而在处理过程中另一个数据包已经到达。接下来会发生什么:处理完成,然后触发另一个事件,或者可能立即触发新事件但在新线程上?

最佳答案

你不应该假设。它可以是任何东西,取决于事件是如何按类型(ethernet_adapter 对象)引发的。

如果是同步操作,则在当前操作进行之前不会引发新事件。

如果是异步操作,会立即引发新的事件。

关于c# - 事件和线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14041513/

相关文章:

c# - 如何使用注册表项将 VSTO 加载项添加到包含列表?

c# - 使用多个工作线程、多个源线程和接收器线程来执行线程 .net 应用程序的优雅方法?

multithreading - Delphi 类变量有全局存储还是线程本地存储?

java - 第一次调用一个方法,当数据有变化时再次调用该方法

c# - 完全的 azure 新手 - 它是什么以及如何检查我的更改是否已提交

c# - 'System.Windows.Controls.Image' 不包含 'FromFile' 的定义

c# - 我如何在 C# 中运行无限循环

c# - 此版本的 SQL Server 不支持已弃用的功能 'INSERT NULL into TIMESTAMP columns'

c# - try catch 数字增量

.net - 当 ThreadPool.QueueUserWorkItem 返回 false