如果两个线程写入同一个串行端口,是否会发生冲突
本文关键字:是否 串行端口 冲突 同一个 两个 线程 如果 | 更新日期: 2023-09-27 18:31:14
我正在用c#编码。如果两个线程写入同一个串行端口,是否会发生冲突?如果是,我该如何处理?另外,我想优先考虑其中一个线程。
例如,如果两个线程正在写入串行端口,那么当我从线程 2 写入数据时,我想停止线程 1 的传输(即线程 2 在写入端口时优先于线程 1)。
非常感谢您的回答。但我的一个问题仍然没有答案。一旦我从线程 1 获取要写入的数据。它应该暂停从其他线程读取/写入并传输此数据,然后继续暂停函数。
msdn 文档说:
"线程安全此类型的任何公共静态(在 Visual Basic 中共享)成员都是线程安全的。不能保证任何实例成员都是线程安全的 http://msdn.microsoft.com/en-us/library/system.io.ports.serialport.aspx。
所以你需要自己让它线程安全。
例如void thread1()
{
lock(serialPort1)
{
serialPort1.Write(something);
}
}
void thread2()
{
lock(serialPort1)
{
serialPort1.Write(somethingelse);
}
}