社区
C#
帖子详情
WINFORM线程控制进度条
lllcui
2009-09-04 08:09:48
有一段执行很慢的程序,就比如说是9999999次的一个循环.执行的时候窗体会死掉.
在窗体上加一个进度条.把这段程序扔到线程里去执行.
但是线程结束时,我要给个提示,告诉我已完成.然后把进度条关掉.
但是在子线程中无法操作主线程上的控件.
我对控件Invoke添加委托,在线程里执行.又会变成执行时窗体死掉的情况,等于跟没用线程一个样.
请问该如何处理.
...全文
115
5
打赏
收藏
WINFORM线程控制进度条
有一段执行很慢的程序,就比如说是9999999次的一个循环.执行的时候窗体会死掉. 在窗体上加一个进度条.把这段程序扔到线程里去执行. 但是线程结束时,我要给个提示,告诉我已完成.然后把进度条关掉. 但是在子线程中无法操作主线程上的控件. 我对控件Invoke添加委托,在线程里执行.又会变成执行时窗体死掉的情况,等于跟没用线程一个样. 请问该如何处理.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lllcui
2009-09-04
打赏
举报
回复
其实我编的不是一个循环,只是处理数据库中大量数据,要等的时间很久,为了给用户一个友好的显示,所以想加个进度条.Invoke应该只调用一次.但是,一执行,窗体就白掉了.啥也不显示,等数据处理完,直接蹦个完成给我,进度条根本就不显示.中间的处理过程,就是个假死.连窗体都不显了.
lllcui
2009-09-04
打赏
举报
回复
我自己搞定了,给我自己 加分行不行?
wuyq11
2009-09-04
打赏
举报
回复
Application.DoEvents()
http://topic.csdn.net/u/20090712/03/ceb0be3d-38e5-4070-96b6-40086ae617d7.html?56385
ChrisAK
2009-09-04
打赏
举报
回复
所谓Invoke是给窗体线程发一条消息告诉它做啥事.而你这里有9999999次循环,
如果你每次循环都Invoke一下;并且这循环还很短;那窗体线程会收到大量密集的
Invoke消息要处理根本无心处理用户输入绘制图像等其它消息.所以会造成窗体假
死.
至于解决方法...看具体情况,如果循环执行的很快每执行1~200次Invoke一下.
如果不是很快每10~20次Invoke一下.
gisyellow
2009-09-04
打赏
举报
回复
用BackgroundWorker吧
winform
线程
实现
进度条
winform
线程
实现
进度条
简单的操作 适合
winform
初学者学习!都来看看吧!
基于
WinForm
的多
线程
多
进度条
程序
基于
Winform
的开发,主要用于熟悉多
线程
同步技术,在多
线程
下让多个
进度条
按照不用的速度运行。
从新手小白进入
WinForm
编程 (VS2019)
WinForm
框架 是 Windows Form 的简称,是美国微软公司Microsoft开发基于 .NET Framework 平台的桌面运用程序框架,一般使用 C#语言 编写。
WinForm
框架可用于设计窗体和可视控件,采用面向对象语言C#,可快速...
简单C#
winform
多
线程
委托调用
进度条
简单
winform
多
线程
调用
进度条
的例子 BeginInvoke
Winform
多
线程
实现
进度条
效果
在用c#做WinFrom开发的过程中。...这时候我们可能就需要用到多
线程
,如果不采用多
线程
控制
进度条
,窗口很容易假死(无法适时看到进度信息)。下面我就简单结合一个我写的例子给大家做一个介绍。....
C#
110,499
社区成员
642,576
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章