在.NET中,如果我们在非UI线程上访问窗体上的控件的时候,会产生一个跨线程调用的异常,那么如何处理这种情况呢?可以使用Control.Invoke方法,如果你不习惯使用委托,那么.Net还为我们提供了一个组件BackgroundWorker,你可以使用这个组件,以事件的方式去处理这种跨线程的控件访问。下面我就来详细的介绍一下这个组件的用法。
我们先来看一下BackgroundWorker提供了哪些常用的成员,
事件
◆DoWork:我们在这个事件中,执行需要异步处理的工作。
◆ProgressChanged:我们在这个事件中,接收并处理异步处理过程中的信息。
◆RunWorkerCompleted:我们在这个事件中,执行异步处理结束的工作。
方法
◆RunWorkerAsync()和RunWorkerAsync(object argument):这两个方法触发DoWork事件,开始异步操作。
◆ReportProgress(int percentProgress)和ReportProgress(int percentProgress, object userState):这两个方法触发ProgressChanged事件。
◆CancelAsync:结束后台的异步操作。
文章来源:http://www.hulian.top,转载请注明!