繁体   English   中英

无效的操作异常-“跨线程操作无效:控件'TextBox1'从创建该线程的线程之外的线程访问。”

[英]Invalid Operation Exception - “Cross-thread operation not valid: Control 'TextBox1' accessed from a thread other than the thread it was created on.”

“如果必要性是发明之母,我想杀死发明这项技术的人。”

-吉米·巴菲特

我不在乎是否有100个名声百万的人这么说,但谁曾想到抛出这种例外,命运应该比死亡更糟。

我已经完全将代码从一个项目复制并粘贴到另一个项目中,以将标准数据填充到一小组文本框中。 在一个应用程序中,数据可以完美显示。 我现在正在研究的新程序当然会抛出此异常。

所以这是我的问题-如果代码相同,为什么一个人扔掉它,而另一个不扔呢? 项目设置中是否有设置? 文本框中是否有一个属性可以防止这种情况发生?

我不记得在项目中设置任何东西来忽略此异常,但是代码完全相同

在创建控件的线程上设置了STAThread属性?

UI线程中是否调用了填充代码? 没有人关心您是否正确复制了代码-如果调用以错误的线程开始。

我不想重复该错误消息,但是您正在尝试从与创建控件的线程不同的线程中修改控件。

看一下InvokeRequiredInvoke

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM