私には3つSerialPort
のコンポーネントがあり、そのうちの2DataReceived
つにはハンドラーがあります。データを受信すると、他のデータ(3番目のデータ)を介して出力を送信しますSerialPort
。私のアプリケーションでは、両方SerialPorts
が同時に送信しようとする可能性は高くないことはわかっていますが、これをシミュレートしようとすると、もちろん、COM PORT
が使用されているというエラーが発生します。
private void sendToCOM(String comNumber, String msg, String speed)
{
try
{
using (SerialPort comPort = new SerialPort(comNumber, Int32.Parse(speed), Parity.None, 8, StopBits.One))
{
comPort.Open();
comPort.Write(msg);
comPort.Close();
comPort.Dispose();
}
}
catch(Exception ex)
{
cstFuncs.errorHandler(ex.Message, SettingsForm);
}
}
SerialPort
それぞれに独自のスレッドがあることを理解しています。
キューを作成するにはどうすればよいですか、または両方のシリアルポートから同時に同じリソースにアクセスしようとしないようにするにはどうすればよいですか(送信されるはずのデータが失われないようにする)