通常,UI更新可能只能从UI线程本身执行.
使用a执行此操作的机制BackgroundWorker是调用worker的ReportProgress方法(确保WorkerReportsProgress = true).此方法将引发ProgressChanged事件,由UI线程处理.
因此,如果您想要向ListBox控件添加项目,例如,基于您BackgroundWorker正在进行的某些工作,请调用ReportProgress并传递您需要的任何数据作为参数.此数据将存储在事件提供的UserState属性中ProgressChangedEventArgs.您的事件处理程序可以获取此数据并ListBox使用它填充.
或者,您可以通过处理工作人员的RunWorkerCompleted事件在最后添加所有内容.如果您的工作人员执行的工作不会花费那么长时间,这通常是可取的,因为它更简单并且它更少地强调UI(执行的离散更新更少).
| 归档时间: |
|
| 查看次数: |
712 次 |
| 最近记录: |