【发布时间】:2010-09-08 12:44:40
【问题描述】:
这是我的代码场景,
在主线程中,我创建面板(基于某些配置),然后在下一步中基于文件类型(如视频、ppt、图像...)创建适当的控件(动态)以显示在表格上。
控件的创建将在单独的线程中完成(对于每个文件)。创建控件后,当我尝试将该控件添加到面板(在主线程中创建)时会引发错误,类似于cross thread violation, control was accessed from one thread other that it was created。
有人可以在这方面帮助我吗?
在这种情况下,一切——创建面板和控件——都将是动态的。没有什么是一成不变的。
我尝试了 StackOverflow 上的一些文章(例如,control.BeginInvoke() .. 等),但无法解决我的问题。
【问题讨论】:
-
Benjol,是的,你是对的,Control.invoke 将是答案,但对我来说,我需要在面板中添加一个新控件。但是这个方法会更新表单上已经存在的控件。让我知道,是否有其他处理 control.invoke() 的方法。
标签: vb.net winforms multithreading