社区
C#
帖子详情
求助:为什么工作线程不能操作UI线程的控件
ouyangyc
2006-09-07 09:46:29
在网上看到很多的文章,都是说当工作线程需要更新一个UI控件时,一定要用Invoke或BeginInvoke切换到UI线程进行操作.
但是为什么要切换呢,不切换会造成什么样的后果呢,UI线程和工作线程又有什么区别呢?
...全文
275
11
打赏
收藏
求助:为什么工作线程不能操作UI线程的控件
在网上看到很多的文章,都是说当工作线程需要更新一个UI控件时,一定要用Invoke或BeginInvoke切换到UI线程进行操作. 但是为什么要切换呢,不切换会造成什么样的后果呢,UI线程和工作线程又有什么区别呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kissknife
2006-09-12
打赏
举报
回复
另:MSDN的解释
访问 Windows 窗体控件本质上不是线程安全的。如果有两个或多个线程操作某一控件的状态,则可能会迫使该控件进入一种不一致的状态。还可能出现其他与线程相关的 bug,包括争用情况和死锁。确保以线程安全方式访问控件非常重要。
.NET Framework 有助于在以非线程安全方式访问控件时检测到这一问题。在调试器中运行应用程序时,如果创建某控件的线程之外的其他线程试图调用该控件,则调试器会引发一个 InvalidOperationException,并提示消息:“从不是创建控件 control name 的线程访问它。”
所以2.0中要求使用invoke方法...
kissknife
2006-09-12
打赏
举报
回复
pretty_soft() 说的应是是二楼的愚翁老爷...
ouyangyc
2006-09-12
打赏
举报
回复
king94的blog,能给个地址吗?GOOGLE搜不到
pretty_soft
2006-09-09
打赏
举报
回复
去看king94的blog吧 上面说的很明白
包括解决方法
pretty_soft
2006-09-09
打赏
举报
回复
去看king94的blog吧 上面说的很明白
包括解决方法
jxhguojun
2006-09-09
打赏
举报
回复
用Invoke方法来操作
李洪喜
2006-09-09
打赏
举报
回复
在VS2003中就可以,在VS2005中不可以
ouyangyc
2006-09-08
打赏
举报
回复
但是为什么别的线程不能调用UI的东西呢
因为想念才会寂寞
2006-09-07
打赏
举报
回复
UI层是一线程,另新一个线程你不能跨线程访问UI,只能用异步、同步的方式调用
Knight94
2006-09-07
打赏
举报
回复
ref:
http://blog.csdn.net/Knight94/archive/2006/08/24/1111267.aspx
c#Winform异步
线程
刷新
UI
使用开发工具为VS2013;.net:4.0 多
线程
异步刷新
ui
界面,实时获取任务进度并进行反馈。
为什么
工作
线程
不能
操作
UI
线程
的
控件
如果不在主
线程
中
操作
UI
,可能会造成如下的情况: (1)两个
线程
同时设置同一个背景图片,那么很有可能因为当前图片被释放了两次而导致应用崩溃。 (2)两个
线程
同时设置同一个
UI
View的背景颜色,那么很有可能渲染...
C#多
线程
:解决新创建的
线程
不能
访问
UI
线程
创建的窗口
控件
问题
多
线程
程序中,新创建的
线程
不能
访问
UI
线程
创建的窗口
控件
,这时如果想要访问窗口的
控件
,发现无法对其控制。这时可将窗口构造函数中的CheckForIllegalCrossThreadCalls设置为false;然后就能安全的访问窗体
控件
。 ...
为什么子
线程
都
不能
刷新
UI
?
1. 理论上的原因 1.1 Android主
线程
是
线程
不安全的? 网上文章常常有说:Android主
线程
是
线程
不安全的。...因为子
线程
可能会有多个,存在多个
线程
同时
操作
一个
控件
的情况)因此,只能在主
线程
中进行
UI
更新。 1...
QT-多
线程
重要概念及与界面之间交互总结(混淆点分析:c#中可以在子
线程
中创建
ui
控件
,qt中
不能
在子
线程
中创建
ui
控件
)
在QThread
线程
中
不能
直接创建QWidget之类的界面组件.(c#中可以在子
线程
中创建
ui
控件
) 因为在QT中,所有界面组件相关的
操作
都必须在主
线程
中(也就是G
UI
thread) 所以, QThread
线程
不能
直接
操作
界面组件. 2.QThread...
C#
110,539
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章