- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
BackgroundWoker类解决软件界面卡死问题
BackgroundWoker类解决软件界面卡死问题
废话不多说,现在带着大家一步步来看看我们如何用winform中的BackgroundWorker类来解决界面卡死这个常见的问题,在这里我们用了一个弹出的进度条界面来实时报告后台耗时程序运行的进程,这个方法对大家以后进行类似的软件开发或拓展是很有用的(一个是用户体验的提升,还有就是对我们对界面的操作无影响)。
第一步:利用winform创建一个工程,创建的画面如下图所示:
其中,Form1窗体设计如下图所示,一共有三个控件:启动按钮(线程的启动),停止按钮(线程的停止),rickTextbox控件显示打印1到999的数字(主要是模拟耗时,这边的耗时大家可以根据具体的开发来判断)。
ProgressForm进度条窗体如下图所示:该窗体有一个进度条progressBar1,这里我们默认设置(大家可以根据自己的需要来进行相关设置)
那么对于第一步的画面设计到此结束,下面我们再看一下代码的编写,很简单的~~
第二步:具体代码编写
Form1中代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
private BackgroundWorker bw=null;
private ProgressForm pf;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
//开始按钮执行事件
private void button1_Click(object sender, EventArgs e)
{
bw = new BackgroundWorker();//创建一个后台线程
bw.WorkerSupportsCancellation = true; //允许线程停止运行
bw.WorkerReportsProgress = true; //允许报告线程进程
//线程进度事件
bw.ProgressChanged+=new ProgressChangedEventHandler(bw_ProgressChanged);
//线程执行完或停止的事件
bw.RunWorkerCompleted+=new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted);
//线程执行事件(这里就是进行耗时执行的地方,后面大家根据实际的开发可将耗时的代码放在这里面)
bw.DoWork += new DoWorkEventHandler(bw_DoWork);
//线程开始异步执行
bw.RunWorkerAsync();
pf = new ProgressForm(); //实例化进度条窗体对象
pf.ShowDialog();//打开进度条窗体
}
void bw_DoWork(object sender, DoWorkEventArgs e)
{
for (int i = 0; i 1000; i++)
{
//获取当前线程是否得到停止命令
if (bw.CancellationPending)
{
e.Cancel = true;
return;
}
您可能关注的文档
- GREArgument写作与实战准备方略-智课教育旗下智课教育.pdf
- 新GRE写作55(ISSUE篇)-智课教育旗下智课教育.pdf
- 新GRE issue写作如何写-智课教育旗下智课教育.pdf
- 学习托福独立写作的三大招数-智课教育旗下智课教育.pdf
- 影响托福写作发挥的四大因素-智课教育旗下智课教育.pdf
- 三个雅思写作备考方法介绍-智课教育出国考试.pdf
- 托福整体写作四大难题-智课教育旗下智课教育.pdf
- GMAT考试作文复习中遇到的问题-智课教育.pdf
- 12周新托福写作备考计划安排,有准备才能得高分-智课教育旗下智课教育.pdf
- 托福写作四大难点及对策-智课教育旗下智课教育.pdf
文档评论(0)