我在c#编码。如果两个线程写入同一串口,是否会发生冲突? 如果是,我该如何处理?另外,我想优先考虑其中一个主题。
例如,如果两个线程正在写入串口,那么我想在从线程2写入数据时暂停线程1的传输(即线程2在写入端口时优先于线程1)。
非常感谢你的回答。但我的一个问题仍然没有答案。一旦我从线程1中获取数据,它应该暂停其他线程的读/写并传输该数据,然后继续使用暂停的函数。
答案 0 :(得分:0)
msdn文档告诉:
“线程安全 此类型的任何公共静态(在Visual Basic中为Shared)成员都是线程安全的。不保证任何实例成员都是线程安全的。“ - 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);
}
}