我有一个设备,如果我发送格式正确的字符串;我得到一个字符串。我想在 WPF ListView 控件中使用这个返回的字符串,但我无法无限地查询串行端口另一端的设备。我想每 3 秒左右刷新一次数据。
下面是应用逻辑:
public static void queryDevice()
{
SerialPort _serialPort = new SerialPort("COM3", 115200, Parity.None, 8, StopBits.One);
_serialPort.Handshake = Handshake.None;
ObservableCollection<string> store= new ObservableCollection<string> { " ", " ", " " };
string[] query = new string[3] { "t02", "t03", "t04" };
while (true)
{
for (int i = 0; i < 3; i++)
{
string add = SerialCom.returnData(query[i], _serialPort);//returns data depending on which query was sent
if (store[i] != add)
{
store.Add(add);
}
}
Thread.wait(300);
}
}
我正在尝试找到线程化此代码的最佳方法,因为将此代码放入 UI 线程会锁定 UI 线程。我计划使用 ObservableCollection 作为该笔记上 ListView 的数据源。
谢谢!