从另一个线程更新进度条的值?

时间:2011-07-08 09:14:22

标签: c# delegates progress-bar backgroundworker multithreading

我的表单会创建一个每6秒检查一次的后台工作者。结果是1-100,我想显示这个。

但是,如果我直接做到这一点,我会得到som跨线程错误,所以我经过一些研究代表才能做到这一点。

我在Form1类中创建了:

public delegate void SetProgressbarValueDelegate(int val);

但我如何“连接”以实际更新进度条?

由于

1 个答案:

答案 0 :(得分:4)

假设您正在使用WinForms,BackgroundWorker类会引发一个ProgressChanged事件,该事件将自动编组回您的UI线程。您应该在此事件的处理程序中更新您的用户界面。

有一些简单的示例说明如何在MSDN documentation中使用BackgroundWorker