我正在 Silverlight 4 应用程序中使用后台工作线程。在 ProgresssChanged 事件处理程序中,我可以调用 Silverlight UI,但这是如何工作的?后台工作线程不是在与 Silverlight UI 线程不同的线程上触发 ProgressChanged 事件吗?如果是这样,我认为从另一个线程更新 UI 线程会导致异常。
斯科特
最佳答案
你说得对,从另一个线程更新 UI 线程是禁忌。 BackgroundWorker 具有特殊的智能,可以确保即使工作是在后台线程上完成的,ProgressChanged 和 RunWorkerCompleted 事件也会在 UI 线程上引发。
我相信它利用 SynchronizationContext来做到这一点。
关于silverlight - Silverlight后台Worker如何毫无问题地更新UI线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3289162/