【发布时间】:2019-03-18 16:25:30
【问题描述】:
根据 MSDN 的 DataReceived 事件,它说
当从 SerialPort 对象接收到数据时,在辅助线程上引发 DataReceived 事件。
这是否意味着只有一个辅助线程总是触发事件?或者 SerialPort 对象是否在每次触发 DataReceived 事件时创建一个新线程?那么当我在DataReceived 事件中时,我的DataReceived 事件会触发吗?
我试图用谷歌搜索,但找不到好的答案。
【问题讨论】:
-
每次都是相同的事件。您使用“+=”注册一次事件。如果您关闭连接,则每次打开连接时都需要注册,然后每次都会有所不同。
-
我知道每次都是同一个事件,但是该事件是从 SerialPort 对象的线程调用的。如果该线程每次都不同,那么当您在该事件中执行其他操作时,可以从另一个线程调用该事件。但是,如果它是从同一个线程中调用的,那就不可能了。
-
发明是一种自动切换进程的中断,可以从应用程序的任何位置调用。
-
您可以通过实际操作来检查它。线程 ID 应由该 API 获取。 Thread.ManagedThreadId Property
标签: c# serial-port