博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BackgroundWorker使用方法
阅读量:5918 次
发布时间:2019-06-19

本文共 863 字,大约阅读时间需要 2 分钟。

在做GUI界面程序的时候,经常会遇到执行长时间方法的需求,当执行长时间方法的同时,再去点击界面,界面就会出现“卡死、假死”的现象,这是因为界面GUI线程被阻塞而导致暂时无响应。解决的方法有很多种,下面介绍C#组件BackgroundWorker的使用方法。

//异步执行,避免界面卡死, BackgroundWorker对象private BackgroundWorker bw = new BackgroundWorker();bw.WorkerReportsProgress = true;//bw.WorkerSupportsCancellation = true;bw.DoWork += new DoWorkEventHandler(bw_DoWork);bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);//执行长时间方法private void btnLongtime_Click(object sender, EventArgs e){    if (bw.IsBusy != true)    {        bw.RunWorkerAsync();    }}/// /// BackgroundWorker执行的长时间方法/// /// /// private void bw_DoWork(object sender, DoWorkEventArgs e){    for(int i = 0; i < 999999999; i++)    {        }}/// /// 事件执行完成的回调方法/// /// /// private void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e){    MessageBox.Show("执行完毕", "对话框");    }

 

参考

[1]:

转载地址:http://fkfvx.baihongyu.com/

你可能感兴趣的文章
1.在CentOS 6.4安装python3
查看>>
TCP/IP图解学习总结(二)
查看>>
彻底禁用resource manager
查看>>
hdu1075
查看>>
mysql生产环境____主从同步修复案例
查看>>
【Access2007】Access2007的打开方式
查看>>
openerp中后台代码详解
查看>>
c#中hash table的用法(转)
查看>>
JavaSE学习总结第16天_集合框架2
查看>>
超简单微信公众帐号自动回复和天气播报功能应用
查看>>
12.组合(Composition)
查看>>
Python 面向对象 --- 多态
查看>>
Jedis分布式锁实现
查看>>
推荐一位牛人的博客
查看>>
C# Excel导出
查看>>
shader Model之间的比较
查看>>
C#使用 SSL Socket 建立 Client 与 Server 连接
查看>>
ruby之selenium自动化 or ruby爬虫利器-selenium
查看>>
Mac Outlook 2016 无法打开会议室日历
查看>>
倒水问题
查看>>