c# BackgroundWorker组件的作用

作者:柳絮 时间:2022-12-23 20:56:12 

当构建一个图形化的Windows Form桌面应用程序并且需要执行在应用程序主UI线程之外的线程中长时间的任务时,BackgroundWorker类就很有用了。

要使用BackgroundWorker,我们只需要告诉它希望在后台执行那个方法并且调用RunWorkerAsync()即可

c# BackgroundWorker组件的作用


public partial class Form1 : Form
 {
   public Form1()
   {
     InitializeComponent();
   }

private void button1_Click(object sender, EventArgs e)
   {
     int a = int.Parse(textBox1.Text.Trim());
     int b = int.Parse(textBox2.Text.Trim());
     Add ad = new Add(a,b);
     backgroundWorker1.RunWorkerAsync(ad);
   }

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
   {
      Add args=(Add)e.Argument;
      for (int i = 0; i < 11; i++)
      {
        Thread.Sleep(200);
        backgroundWorker1.ReportProgress(i*10);
      }

e.Result = args.a + args.b;
   }

private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
   {
     label1.Text = e.Result.ToString();
   }

private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
   {
     progressBar1.Value = e.ProgressPercentage;
   }
 }
 public class Add
 {
   public int a;
   public int b;
   public Add(int a, int b)
   {
     this.a = a;
     this.b = b;
   }

}

来源:https://www.cnblogs.com/wangzhenghua/p/4448752.html

标签:c#,BackgroundWorker,组件
0
投稿

猜你喜欢

  • Android中回调接口的使用介绍

    2022-07-24 02:45:07
  • java中List分页的几种方法介绍

    2022-03-01 12:04:28
  • Android实现异步加载图片

    2021-08-14 16:44:20
  • C# 实现dataGridView选中一行右键出现菜单的示例代码

    2022-05-12 05:15:55
  • Spring main方法中如何调用Dao层和Service层的方法

    2023-11-28 23:15:19
  • 在mybatis 中使用if else 进行判断的操作

    2021-11-10 23:17:11
  • C#冒泡法排序算法实例分析

    2023-08-13 18:03:42
  • Java 高并发八:NIO和AIO详解

    2023-01-29 15:50:51
  • Intellij idea热部署插件JRebel的使用

    2022-12-02 14:13:27
  • java开发AOP面向切面编程入门

    2021-08-22 04:47:56
  • ubuntu环境下反编译android apk的方法

    2022-08-09 13:41:41
  • Mybatis-plus配置分页插件返回统一结果集

    2022-05-27 19:15:06
  • Groovy的规则脚本引擎实例解读

    2023-07-11 21:24:04
  • Java基础学习之集合底层原理

    2023-09-30 22:16:40
  • C++数组指针和二维数组详情

    2022-03-31 21:11:07
  • Java实现多个wav文件合成一个的方法示例

    2021-10-08 08:14:25
  • Eclipse下基于Java的OpenCV开发环境配置教程

    2022-01-30 21:02:54
  • Java synchronized同步方法详解

    2022-06-27 02:46:37
  • Java Stream流的常见生成和操作方法总结

    2023-08-26 12:06:21
  • c#网络唤醒功能实现

    2022-07-03 03:26:51
  • asp之家 软件编程 m.aspxhome.com