很多小伙伴都想了解什么是backgroundworker,今天小编特地为大家做相关问题介绍,希望能解决大家的疑问!
1.什么是backgroundworker?
BackgroundWorker是一个将操作在后台线程上执行的组件。它可以允许在执行耗时操作时,不会阻止用户对应用程序的操作。一个后台工作者是一个可以触发事件的组件,当主线程请求操作时它会在另一个线程上运行。
在WPF的应用程序中,我们往往需要使用BackgroundWorker来完成一些异步操作,例如下载数据,读写文件,或者是执行一个耗时的操作等等。因为这些操作执行太慢会导致整个应用程序卡顿,长时间无响应。
BackgroundWorker创建的是一个全局的后台工作者,在应用程序的生命周期内存在,且可用于多个异步操作。使用BackgroundWorker对象可在异步模式下执行长时间运行的操作。
2.工作原理
BackgroundWorker组件可以有以下三个事件:
DoWork:这个事件在调用BackgroundWorker组件的RunWorkerAsync方法时发生。这个事件完成后会自动调用ProgressChanged事件,从而完成进度。
ProgressChanged:这个事件在工作线程上被调用,以通知应用程序执行进度的更改,完成后会自动调用RunWorkerCompleted事件。
RunWorkerCompleted:这个事件在调用BackgroundWorker组件的CancelAsync方法,或者是DoWork事件中发生异常时自动调用。
当进度的更新改变时,将引发ProgressChanged事件,并具有一个BackgroundWorker.ProgressChangedEventArgs实例,它包含了信息。
完成后,RunWorkerCompleted事件将会被触发,并传递一个BackgroundWorker.RunWorkerCompletedEventArgs实例,其中包含一个结果。
总之,BackgroundWorker组件在某些时候可能会发挥积极作用,它是异步调用的好帮手。
以上就是小编今天对于什么是backgroundworker的相关介绍了,希望大家能够喜欢!