silverlight - Silverlight后台Worker如何毫无问题地更新UI线程?

标签 silverlight multithreading

我正在 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/

相关文章:

java - Swing 动画运行速度极慢

python - "subprocess.Popen().readline()"在多线程python中无法返回

java - N 个重复任务的多线程架构

c# - 使用 BackgroundAgent 时程序集丢失

silverlight - 滚动文本 block

c# - 如何使用 Caliburn.Micro MVVM 将焦点设置到控件

java - (可能)非常简单的Java多线程问题

java - Java 并发的困难时期

silverlight - 在 silverlight 中打开响应流

silverlight - UI和View在术语上的区别以及在哪种情况下正确