BackgroundWorker控件其实是对Thread的一层封装,使我们可以快速的创建一个线程,并且能够报告进度,暂停,取消以及完成后进行其他的处理,当我们需要执行一些耗时的操作,又不想让当前界面出于无响应的状态的时候,就可以考虑使用BackedWorker控件,以异步的方式来执行。
1.BackgroundWorker类介绍
1.1. 四个常用属性:
public bool IsBusy { get; } //只读属性,用来判断当前线程是否正在工作中
public bool WorkerReportsProgress { get; set; } //决定当前线程是否能报告进度
public bool WorkerSupportsCancellation { get; set; } //决定当前线程能否取消
public bool CancellationPending { get; } //只读属性,用来判断是否发送了取消线程的消息(当调用CancelAsync()方法时,被设置为true)
1.2. 三个常用事件:
public event DoWorkEventHandler DoWork; //启动线程,线程的主要逻辑,调用RunWorkerAsync()时触发该事件
public event ProgressChangedEventHandler ProgressChanged; //报告进度,如果想要和UI进行交互必须要通过这个函数
public event RunWorkerCompletedEventH