Tag: modbus

C#BackgroundWorker和Com端口问题

好。 我有一个监控2个COM端口的程序。 一个连接到秤,另一个连接到modbus板。 我的问题是连接到modbus板的COM端口。 我的程序每100MS读一个传感器(在modbus板上)。 它返回0或1(通过COM端口)以确定传感器是否被阻塞。 如果它被阻止,则通过端口向板发送信号。 我的问题是我无法退出监控传感器,但在发送其他信号之前我必须确保com端口未被使用。 监视传感器的例程在后台工作线程上。 一旦传感器跳闸,产生另一个线程,向Modbus板发送信号。 所以当我向电路板发送信号时,我需要暂停“传感器线程”。 我该怎么做呢? 请记住它是BackgroundWorker,因此Thread.Join不是一个选项。 这是我的代码: private void SensorThread_DoWork(object sender, DoWorkEventArgs e) { if (SensorThread.CancellationPending == true) e.Cancel = true; else { ReadSensor(); } } 此线程的RunWorkerCompleted只是重新启动线程。 以下线程持续监视“sensorstatus”以查看传感器何时被阻塞: public void ScaleThread_DoWork(object sender, DoWorkEventArgs e) { if (ScaleThread.CancellationPending == true) { e.Cancel = true; } else { //sensor is […]