-
大小: 41KB文件类型: .rar金币: 1下载: 0 次发布日期: 2021-06-05
- 语言: C#
- 标签: background
资源简介
backgroundworker+process进度条完整解决方案,以测试通过
代码片段和文件信息
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;
using System.Threading;
//// 该例子在 Backgroundworker 组件的辅助线程上随机产生整数,辅助线程运行DoWork事件处理程序,//
////当产生能被5整除的整数时,使用ProgressChanged事件把整数显示到窗体上。//
////程序执行到 RunWorkerAsync 方法时,将启动后台线程。 在Dowork事件中,
//如果应用程序没有取消后台操作,将不停的产生随机整数,然后判断该整数能否被5整除,
//如果能被5整除,执行work.ReportProgress方法来触发 ProgressChanged 事件,
//在 ProgressChanged 事件中与界面长须打交道,把生产的随机整数显示到窗体上。//
namespace backgroundworker3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private bool isSuspend;//是否需要暂停操作
private void Form1_Load(object sender EventArgs e)
{
backgroundWorker1.WorkerReportsProgress = true;//声明可以报告进度
backgroundWorker1.WorkerSupportsCancellation = true;//可以异步取消
progressBar1.Minimum = 0;
progressBar1.Maximum = 100;
progressBar1.Step = 10;
}
/// 模拟一个耗时的方法(让线程休眠0.1秒)
private void GetData()
{
System.Threading.Thread.Sleep(100);
}
private void button1_Click(object sender EventArgs e)
{
bool aa = backgroundWorker1.IsBusy;
label1.Text = aa.ToString();
if (!backgroundWorker1.IsBusy) //如果dowork处于不忙状态,可以执行操作
{
backgroundWorker1.RunWorkerAsync();
}
}
/// backgroundWorker的核心事件1,执行耗时的操作就在个方法里执行
//下面的内容相当于线程要处理的内容。//注意:不要在此事件中和界面控件打交道
//不要直接使用组件实例名称(backgroundWorker1)因为有多个BackgroundWorker时,
//直接使用会产生耦合问题,应该通过下面的转换使用它
private void backgroundWorker1_DoWork(object sender DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
Random r = new Random();
int numCount = 0;
while (worker.CancellationPending == false&&numCount<10)
{
int num = r.Next(0 100);
if (num % 5 == 0)
{
numCount++;
worker.ReportProgress(numCount num);
Thread.Sleep(1000);
}
while (isSuspend)
{
Thread.Sleep(50);
}
}
e.Result = numCount;
}
/// backgroundWorker的核心事件2,用于接收DoWork方法执行过程中的情况
private void backgroundWorker1_ProgressChanged(object sender ProgressChangedEventArgs e)
{
////接收DoWork传送过来的数据并在界面上显示
if (e.UserState.ToString() != ““)
{
progressBar1.Value = e.ProgressP
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3780 2013-03-26 13:28 backgroundworker3\backgroundworker3\backgroundworker3.csproj
文件 11264 2013-03-26 14:45 backgroundworker3\backgroundworker3\bin\Debug\backgroundworker3.exe
文件 28160 2013-03-26 14:45 backgroundworker3\backgroundworker3\bin\Debug\backgroundworker3.pdb
文件 14328 2013-03-26 15:15 backgroundworker3\backgroundworker3\bin\Debug\backgroundworker3.vshost.exe
文件 490 2007-07-21 01:33 backgroundworker3\backgroundworker3\bin\Debug\backgroundworker3.vshost.exe.manifest
文件 5265 2013-03-26 14:45 backgroundworker3\backgroundworker3\Form1.cs
文件 6195 2013-03-26 14:44 backgroundworker3\backgroundworker3\Form1.Designer.cs
文件 6019 2013-03-26 14:44 backgroundworker3\backgroundworker3\Form1.resx
文件 978 2013-03-26 15:15 backgroundworker3\backgroundworker3\obj\Debug\backgroundworker3.csproj.FileListAbsolute.txt
文件 847 2013-03-26 14:44 backgroundworker3\backgroundworker3\obj\Debug\backgroundworker3.csproj.GenerateResource.Cache
文件 11264 2013-03-26 14:45 backgroundworker3\backgroundworker3\obj\Debug\backgroundworker3.exe
文件 180 2013-03-26 14:44 backgroundworker3\backgroundworker3\obj\Debug\backgroundworker3.Form1.resources
文件 28160 2013-03-26 14:45 backgroundworker3\backgroundworker3\obj\Debug\backgroundworker3.pdb
文件 180 2013-03-26 13:56 backgroundworker3\backgroundworker3\obj\Debug\backgroundworker3.Properties.Resources.resources
文件 498 2013-03-26 13:17 backgroundworker3\backgroundworker3\Program.cs
文件 1390 2013-03-26 13:17 backgroundworker3\backgroundworker3\Properties\AssemblyInfo.cs
文件 2884 2013-03-26 13:17 backgroundworker3\backgroundworker3\Properties\Resources.Designer.cs
文件 5612 2013-03-26 13:17 backgroundworker3\backgroundworker3\Properties\Resources.resx
文件 1102 2013-03-26 13:17 backgroundworker3\backgroundworker3\Properties\Settings.Designer.cs
文件 249 2013-03-26 13:17 backgroundworker3\backgroundworker3\Properties\Settings.settings
文件 941 2013-03-26 13:17 backgroundworker3\backgroundworker3.sln
..A..H. 19456 2013-03-26 14:47 backgroundworker3\backgroundworker3.suo
目录 0 2013-03-26 13:17 backgroundworker3\backgroundworker3\obj\Debug\TempPE
目录 0 2013-03-26 13:56 backgroundworker3\backgroundworker3\bin\Debug
目录 0 2013-03-26 14:45 backgroundworker3\backgroundworker3\obj\Debug
目录 0 2013-03-26 13:17 backgroundworker3\backgroundworker3\bin
目录 0 2013-03-26 13:17 backgroundworker3\backgroundworker3\obj
目录 0 2013-03-26 13:17 backgroundworker3\backgroundworker3\Properties
目录 0 2013-03-26 14:45 backgroundworker3\backgroundworker3
目录 0 2013-03-26 13:17 backgroundworker3
............此处省略3个文件信息
评论
共有 条评论