【发布时间】:2012-01-02 13:12:30
【问题描述】:
我正在使用 BackgroundWorker 执行繁重的任务,因此 UI 线程不会被阻塞。虽然 BackgroundWorker 可以使用进度方案向 UI 线程发送值,但 BackgroundWorker 如何从 UI 线程获取一些值?
是通过询问还是简单地通过 UI 线程向 BackgroundWorker 发送一些值?
只访问BackgroundWorker中的UIForm.x之类的UI线程的变量是行不通的,它似乎没有访问UI变量的权限???
非常感谢
【问题讨论】:
-
RunWorkerAsync() 可以将对象作为参数。它可以是您创建的用于存储工作人员需要的 UI 值的类的对象。
-
谢谢,但我不需要这些值来启动 worker - worker 必须在 UI 线程已经运行时多次获取值。我应该在我的问题中更清楚地说明这一点......
-
那你做错了。值何时发生变化是完全不可预测的,保持工作人员运行并等待用户再次醒来是没有意义的。当这样的值发生变化时,只需重新启动 worker。
-
它的工作方式是在 UI 中输入一个值,这应该在某个时候以某种方式转到 BackgroundWorker - 什么时候不重要
标签: vb.net