【发布时间】:2012-04-15 13:11:07
【问题描述】:
我正在用 C# 编码。如果两个线程正在写入同一个串行端口,是否会发生冲突? 如果是,我该如何处理?另外,我想优先考虑其中一个线程。
例如,如果两个线程正在写入串行端口,那么当我从线程 2 写入数据时,我想停止线程 1 的传输(即,在写入端口时,线程 2 的优先级高于线程 1)。
非常感谢您的回答。但我的一个问题仍未得到解答。一旦我从线程 1 获得要写入的数据。它应该暂停从其他线程读取/写入并传输此数据,然后继续暂停功能。
【问题讨论】:
-
这没有多大意义,电缆另一端的设备会变得非常混乱。一般来说,使用互斥体在线程之间进行仲裁。
-
就像@HansPassant 所说,你在某个任意点“中断”一个线程会将你正在使用的任何协议单元切成小块。 Muxtex,也许吧。如果一个线程将具有“优先级”,则让另一个线程用它想要发送的任何数据向优先级线程发出信号——prio。线程可以在处理完自己的事情后处理它。
标签: c# multithreading serial-port collision