【发布时间】:2011-03-29 02:38:39
【问题描述】:
我有一个 winform,还有一个与乐高 nxt 积木的蓝牙连接。现在我想每秒更新一次表单以读取传感器或电池电量。但是如果我为此启动一个新线程,当线程想要设置标签文本时,我会出现一个无效的线程操作异常。
谁能帮帮我?
【问题讨论】:
标签: c# winforms multithreading delegates asynchronous
我有一个 winform,还有一个与乐高 nxt 积木的蓝牙连接。现在我想每秒更新一次表单以读取传感器或电池电量。但是如果我为此启动一个新线程,当线程想要设置标签文本时,我会出现一个无效的线程操作异常。
谁能帮帮我?
【问题讨论】:
标签: c# winforms multithreading delegates asynchronous
您需要将标签更新调用回主线程
【讨论】:
您只能从创建标签的线程更新标签,并且从外观上看,您正试图从工作线程更新它。
查看Control.BeginInvoke() 方法并从那里获取。还有其他方法,例如 Control.EndInvoke 和 Control.Invoke 以及属性 Control.InvokeRequired,在这种情况下也会有所帮助。
【讨论】: