2011-07-05 73 views
2

我有一個SL應用程序,並且我有一些事件,一旦用戶點擊,應用程序正在做一些工作。 這項工作凍結了用戶界面直到作業完成(作業修改了用戶界面元素)。 如何提高SL應用程序中UI作業的性能?我讀過UI線程是唯一的選擇。Silverlight UI更改凍結應用程序

謝謝

回答

2

您應該使用BackgroundWorker來完成您的密集工作。

BackgroundWorker on MSDN

它把工作完成後,這是最主要/ UI線程上執行的事件(RunWorkerCompleted)。

編輯:

如果你的後臺作業需要更新的用戶界面,您可以使用接線員:

Dispatcher.BeginInvoke on MSDN

例子:

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

大部分的工作是修改UI元素。因此將它們放入BackgroundWorker不是解決方案 – Himberjack

+0

編輯我的答案... – jv42