こんにちは。
C#で、シリアルポートを使用しているのですが、複数スレッドから1つのシリアルポートを
使用する方法について、質問させてください。
現在、3つのスレッドがありまして、それぞれのスレッドから、
LOCK→シリアル送信→シリアル受信→LOCK解除
と、排他制御したいと思っています。
なぜかデッドロックになってしまうのですが、よい方法をご存知でしたら
ご教授いただければと思います。
よろしくお願いいたします。
private void Thread1()
{
while (run1)
{
lock(o)
{
serialPort_Send("test");
serialPort_Received();
}
Thread.Sleep(100);
}
}
private void Thread2()
{
while (run2)
{
lock(o)
{
serialPort_Send("test");
serialPort_Received();
}
Thread.Sleep(100);
}
}
private void Thread3()
{
while (run3)
{
lock(o)
{
serialPort_Send("test");
serialPort_Received();
}
Thread.Sleep(100);
}
}