Silverlight UI更改冻结了应用程序

时间:2011-07-05 09:56:10

标签: .net multithreading silverlight

我有一个SL应用程序,我有一些事件,一旦用户点击,该应用程序正在做一些工作。 此工作冻结UI直到作业完成(作业修改UI元素)。 如何在SL应用程序中提高UI作业的性能?我读到UI线程是唯一的选择。

谢谢

1 个答案:

答案 0 :(得分:2)

您应该使用BackgroundWorker来进行密集的工作。

BackgroundWorker on MSDN

在工作完成后,它会在主/ UI线程上执行一个事件(RunWorkerCompleted)。

编辑:

如果您的后台作业需要更新UI,则可以使用Dispatcher:

Dispatcher.BeginInvoke on MSDN

示例:

Deployment.Current.Dispatcher.BeginInvoke(() => MessageBox.Show("This is executed on UI thread"));