適切にフォーマットされた文字列を送信すると、次のようなデバイスがあります。糸を返します。この返された文字列を 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 スレッドがロックされるため、このコードをスレッド化する最良の方法を見つけようとしています。そのメモの ListView のデータソースとして ObservableCollection を使用する予定です。
ありがとう!