源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

c#异步操作后台运行(backgroundworker类)示例

  • 时间:2020-10-31 23:55 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:c#异步操作后台运行(backgroundworker类)示例
c#异步操作,BackgroundWorker类的使用,可以在后台运行需要的代码逻辑。
[u]复制代码[/u] 代码如下:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Windows.Forms; namespace TestBackgroundWork {     public partial class Form1 : Form     {         public Form1()         {             InitializeComponent();             InitializeBackgoundWorker();         }         private BackgroundWorker backgroundWorker1;         private void InitializeBackgoundWorker()         {             this.backgroundWorker1 = new System.ComponentModel.BackgroundWorker();             this.backgroundWorker1.WorkerReportsProgress = true;             this.backgroundWorker1.WorkerSupportsCancellation = true;             this.backgroundWorker1.DoWork += new DoWorkEventHandler(backgroundWorker1_DoWork);             this.backgroundWorker1.ProgressChanged += new ProgressChangedEventHandler(backgroundWorker1_ProgressChanged);             this.backgroundWorker1.RunWorkerCompleted += new RunWorkerCompletedEventHandler(backgroundWorker1_RunWorkerCompleted);         }         //**********backgroundWorker1的回调函数**********         void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)         {             BackgroundWorker worker = sender as BackgroundWorker;             for (int i = 1; i <= 10; i++)             {                 if (worker.CancellationPending)                 {                    e.Cancel = true;                 }                 else                 {                     Thread.Sleep(500);                     int percentComplete = (int)((float)i / (float)10 * 100);                     worker.ReportProgress(percentComplete);                 }             }         }         void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)         {             this.progressBar1.Value = e.ProgressPercentage;         }         void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)         {             if (e.Error != null)             {                 MessageBox.Show(e.Error.Message);             }             else if (e.Cancelled)             {                 resultLabel.Text = "Canceled";             }             else             {                 resultLabel.Text = "Completed";             }             startBtn.Enabled = true;             stopBtn.Enabled = false;         }         //**********backgroundWorker1的回调函数**********         private void startBtn_Click(object sender, EventArgs e)         {             resultLabel.Text = String.Empty;             this.startBtn.Enabled = false;             this.stopBtn.Enabled = true;             //启动异步操作.             backgroundWorker1.RunWorkerAsync();         }         private void stopBtn_Click(object sender, EventArgs e)         {             backgroundWorker1.CancelAsync();         }     } }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部