社区
C#
帖子详情
[急][抢分]线程问题,线程的阻塞问题,达人快进
Flysnow
2003-10-21 11:30:20
一时大脑发热,怎么也想不到好的解决方法,达人指条明路
症状分析:
在主程序A中新建线程B,B为消息阻塞循环,现B接收一消息,需要显示主程序A一窗体C,然后继续阻塞。出现问题即新建窗体无响应,其实程序已经执行到阻塞位置,等待消息,而且仍然可以继续接收消息。
有种方法可以解释,就是在创建B之前,创建C的所有控件,就不会产生崩溃,查过历史贴子,说到不能在线程访问其他线程的控件,想可能是这种问题,提到Invoke,但不很清楚。
...全文
41
8
打赏
收藏
[急][抢分]线程问题,线程的阻塞问题,达人快进
一时大脑发热,怎么也想不到好的解决方法,达人指条明路 症状分析: 在主程序A中新建线程B,B为消息阻塞循环,现B接收一消息,需要显示主程序A一窗体C,然后继续阻塞。出现问题即新建窗体无响应,其实程序已经执行到阻塞位置,等待消息,而且仍然可以继续接收消息。 有种方法可以解释,就是在创建B之前,创建C的所有控件,就不会产生崩溃,查过历史贴子,说到不能在线程访问其他线程的控件,想可能是这种问题,提到Invoke,但不很清楚。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jimmychou
2003-10-21
打赏
举报
回复
关注,帮你顶
Flysnow
2003-10-21
打赏
举报
回复
说白了,告诉我如果使用Control.Invoke去调用一个函数,使用了N种方法都不成,头都大了.. MSDN上连个例子都没...
Flysnow
2003-10-21
打赏
举报
回复
上
Flysnow
2003-10-21
打赏
举报
回复
这个清楚,不过对(Control.Invoke)理解不深,正在查MSDN,可能帮助不大,没有实例
zjroland
2003-10-21
打赏
举报
回复
按照教材,Windows GUI程序设计的一般规则是:
1) 由单个线程生成窗口,极其所有子窗口和控件。
2) 这个线程作为整个窗口结构的owner,控制窗口(和子窗口)的消息循环。
3)仅有这个线程可以直接安全的访问控件,其他线程必须通过某种线程通信机制来访问控件。(在.NET中,该主线程可以调用控件的成员方法,而其他线程必须使用Control.Invoke)。
xxdneu
2003-10-21
打赏
举报
回复
关注,不大清楚
Flysnow
2003-10-21
打赏
举报
回复
起
Flysnow
2003-10-21
打赏
举报
回复
http://www.microsoft.com/china/msdn/library/dnforms/html/winforms08162002.asp
原来微软网站上还有很多好文章
C#中利用委托实现多
线程
跨
线程
操作
在使用VS2005的时候,如果你从非创建这个控件的
线程
中访问这个控件或者操作这个控件的话就会抛出这个异常。这是微软为了保证
线程
安全以及提高代码的效率所做的改进,但是也给大家带来很多不便。 其实解决这个
问题
有两种方法: 一,是通过设置 System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false; 在你的程序初始化的
C#多
线程
操作界面控件的解决方案
C#中利用委托实现多
线程
跨
线程
操作 在使用VS2005的时候,如果你从非创建这个控件的
线程
中访问这个控件或者操作这个控件的话就会抛出这个异常。这是微软为了保证
线程
安全以及提高代码的效率所做的改进,但是也给大家带来很多不便。其实解决这个
问题
有两种方法:一,是通过设置System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false...
Redis为什么选择单
线程
?Redis为什么这么快?
Redis是一个基于内存操作、KV形式的数据库,采取多路复用、非
阻塞
IO、避免了不必要的上下文切换等特性。Redis一直存在BigKey
问题
,因此在Redis4.0引入了多
线程
异步删除,正式打开Redis多
线程
新篇章。Redis6.0引入IO多
线程
的读写,更高效的处理请求,Redis只是将IO读写变成了多
线程
,命令的执行还是由主
线程
单
线程
执行,因此,多
线程
下操作Redis不会出现
线程
安全的
问题
,不用像Java那样加锁,解锁,这也是Redis为什么这么快的根本原因。
Redis单
线程
还是多
线程
?IO多路复用原理
Redis实战系列,打造精品专栏。
C#多
线程
操作界面控件的解决方案(转)
C#中利用委托实现多
线程
跨
线程
操作 - 张小鱼 2010-10-22 08:38 在使用VS2005的时候,如果你从非创建这个控件的
线程
中访问这个控件或者操作这个控件的话就会抛出这个异常。这是微软为了保证
线程
安全以及提高代码的效率所做的改进,但是也给大家带来很多不便。其实解决这个
问题
有两种方法:一,是通过设置System.Windows.Forms.Control.CheckForIlle...
C#
110,538
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章