winform怎么使用后台处理控件backgroundworker

winform怎么使用后台处理控件backgroundworker,第1张

在winform项目中,打开工具箱,找到backgroundworker控件并拖入窗体中,这时窗体下方出现backgroundworker实例

右击backgroundworker实例,在菜单中选择“属性”

在属性窗口中,点击闪电按钮切换到控件的事件列表

分别在DoWork 和RunWorkerCompleted的属性处双击来生成绑定事件,可以看到后台自动生成了事件签名

为了调用backgroundworker控件,在窗口中拖入一个按钮。另外,拖入一个label来显示结果

双击按钮,进入后台代码。在单击事件写上测试代码,如下图所示。其中,

label1.Text = "start"表明后台处理开始

backgroundWorker1.RunWorkerAsync()调用backgroundWorker1

为了模拟复杂费时间的处理,在Dowork事件中加入如下代码,代码含义是:循环5次,每次暂停1秒钟,总共暂停5秒钟。

for (int i = 0i <5i++)

{

Thread.Sleep(1000)

}

在RunWorkerCompleted事件中加入如下代码,代码含义是:复杂费时间的处理完成后,给出提示。

label1.Text = "finish"

运行工程,测试效果。点击按钮,label的内容变成start,这时等上5秒钟,label的内容变成finish,测试成功

我们写一个程序,来实现程序等待时间的秒数是5秒的时候程序d出一个消息框,我们不用多线程,而是用backgroundWorker(其实是封装好了的多线程)组件实现,我们当然也不用timer,而是用循环,一般循环会导致程序不响应,不过放在backgroundWorker就没这个问题了

2

首先新建一个程序

3

在左侧工具中,拖入backgroundWorker控件

4

在拖入的backgroundWorker上双击,打命代码窗口

5

我们写入语句

while (DateTime.Now.Second != 5)

{

}

这个代码的意思是,当时间秒数不等于5时,循环,所以是个空循环,其实就是占用时间的循环

我们回到程序界面,选中backgroundWorker

然后在属性窗口,点击红框的事件图标

我们在RunWorkerCompleted上双击,打开代码窗口

我们填入以下代码

MessageBox.Show("异步执行完毕")

这句话的意思是,当backgroundWorker1执行完毕后,会d出这么一句话

我们回到程序主界面,往窗体拖入一个按扭

双击按钮打开代码窗口

我们填入以下代码

backgroundWorker1.RunWorkerAsync()

这句话的作用是启动backgroundWorker1的运行

好,我们现在启动程序

我们点击程序上的按钮,点击后,程序还是很灵活,没有不响应,因为backgroundWorker的异步功能,如果没有backgroundWorker,那么现在窗口肯定假死了

对照着系统的时间,秒针跑到5的时候,消息窗口d了出来


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11335425.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存