2

我有一个关于BackgroundWorker. 我可以在ProgressChanged没有启动线程的情况下调用事件RunWorkerAsync

我不明白为什么会这样。如果新线程甚至还没有启动,它如何通知原始线程?

无论如何,这似乎都有效,因为它可以毫无问题地更新 GUI,而在我实现BackgroundWorker.

4

1 回答 1

7

无论从哪个线程调用它,调用ReportProgressChanged()都将始终引发事件。ProgressChanged

在实现的内部ReportProgressChanged()是一种机制,如果它不是从 UI 线程调用的,它会在 UI 线程上引发事件。如果ReportProgressChanged() UI 线程调用,那么它只会引发事件,而无需进行额外的编组。

于 2013-05-18T17:09:24.470 回答