【发布时间】:2013-01-15 10:53:09
【问题描述】:
我有 3 个 SerialPort 组件,其中 2 个有 DataReceived 处理程序。
当接收到数据时,它们正在通过其他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 都有自己的线程。
如何创建队列或如何防止两个串行端口尝试同时访问相同的资源(并且不会丢失应该发送出去的数据)
【问题讨论】:
标签: c# multithreading event-handling serial-port queue