【发布时间】:2012-08-07 08:52:09
【问题描述】:
我有一个表单,它在加载时会启动一个循环后台工作程序,它每半秒从 USB 设备获取数据。
一旦程序从 USB 设备接收到一条新数据,它就会运行一个函数。_Dowork 函数有
while (true)
{
portConnection.Write("?");
Thread.Sleep(50);
}
然后我有一个单独的例程在收到数据时运行
private void portConnection_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
}
这是无法在原始表单上设置值的例程,因为该函数显然位于单独的线程上。
我怎样才能使这个例程能够影响原始形式?
【问题讨论】:
-
看
Invoke和InvokeRequired -
尝试类似 if (portConnection.InvokeRequired) { portConnection.Write("?"); }
标签: c# multithreading serial-port