SerialPort クラスでデバイスからデータを取得します。これが私の方法です:
public WriteAndRead(){
...
sp.Write(send_buffer.ToArray(), 0, send_buffer.Count);
do
{
if (sp.BytesToRead > 0)
{
ret_val = sp.ReadByte();
done = true;
}
else
ret_val = -1;
} while ((!done) && ((Environment.TickCount - char_tmo) < interchar_delay));
...
}
だから、他のスレッドから呼び出したい。コードのその部分をlock(sp){}にラップして、読み取りと書き込みを同期させましょうか。または、あるスレッドが書き込み中で、他のスレッドがそれから読み取っている状況をどのように回避できますか?