使用串行端口接收数据后,表单控件的NotSupportedException

时间:2014-06-29 10:41:13

标签: c# multithreading serial-port controls windows-ce

我正在使用visual studio 2008为Windows CE开发一个程序。我正在使用Serialport data_received事件来获取数据,但是当我想将它设置为Textbox或Label的Text属性时,在接收数据(字符串)时,TextBox.Text中的NotSupportedException正在抛出。 相反,如果我使用接收到的数据设置局部变量,它的工作没有任何问题。

例外:

未处理的类型' System.NotSupportedException'发生在System.Drawing.dll

我几乎不记得几年前当我使用套接字时,我遇到了与线程有关的问题!

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

您遇到的问题很可能是您无法从主线程以外的任何线程访问用户界面元素。

你需要做的是调用主线程中的代码来实际设置你需要的属性。

这是通过声明一个委托子并将其传递给control.invoke

来完成的

请参阅以下内容:

http://msdn.microsoft.com/en-us/library/ms172879.aspx

http://msdn.microsoft.com/en-us/library/a1hetckb(v=vs.110).aspx