C# Winform 等待窗体

等待窗体设计
本文介绍了一种使用假进度条GIF图实现等待窗体的方法,通过新建线程显示等待窗体,并利用Timer控件和公共变量IsToClose来优雅地关闭窗口,避免了ThreadAbortException异常。

等待窗体在项目中使用相当频繁,特别是一些比较耗时的操作,容易导致界面卡住,这时候一般会显示一个等待窗体,告诉用户系统其实在运行。

当然加上个进度条会更加人性化。在这里,我采用了一个假的进度条,就是用一个gif图片来代替真是的滚动条。

基本的思路如下:

程序中比较耗时的操作之前,先新建一个线程(Thread),用来显示等待窗体,操作结束后,通知等待窗体关闭。

等待窗体的显示没什么好说的了,关键是关闭的时候遇到了麻烦。最初我采用threadWait.Abort()方法来终止线程,

但是时不时的就会出现ThreadAbortException异常,加了try-catch也没有用。查阅了很多资料,虽然没能解问题,但是总算找到了一个思路:

等待窗体设置一个public变量IsToColse,表示是否需要关闭,然后添加一个Timer控件,监视这个变量,一旦符合条件就执行关闭操作;

在等待窗体的调用处,等耗时操作执行完之后,就修改等待窗体的IsToColse,指示等待窗体关闭。

实例代码下载:http://download.youkuaiyun.com/detail/tomsyc/4220284

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值