C#这么读取多个串口
时间: 2024-12-25 18:28:21 浏览: 3
在C#中,你可以使用`Task.Run`结合`SerialDataReceivedEventHandler`来读取多个串口。以下是一个简单的示例:
```csharp
// 假设你有两个SerialPort对象serialPort1和serialPort2
Task.Run(() => {
// 添加事件处理器以监听每个串口的数据接收
serialPort1.DataReceived += new SerialDataReceivedEventHandler(serialPort1_DataReceived);
serialPort2.DataReceived += new SerialDataReceivedEventHandler(serialPort2_DataReceived);
// 数据接收事件处理方法
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
// 读取serialPort1的数据
byte[] data = serialPort1.ReadExisting();
// 处理接收到的数据...
}
private void serialPort2_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
// 读取serialPort2的数据
byte[] data = serialPort2.ReadExisting();
// 处理接收到的数据...
}
});
// 这样做可以保证在接收两个串口的数据时,UI线程不会因为等待而阻塞,从而避免界面卡顿。
```
阅读全文