2011-07-05 9 views
2

私はSLアプリケーションを持っていて、ユーザーがクリックするといくつかのイベントが発生します。 この作業は、ジョブが完了するまで(ジョブがUI要素を変更するまで)UIをフリーズします。 SLアプリケーションでUIジョブのパフォーマンスを向上させるにはどうすればよいですか?私は、UIスレッドが唯一のオプションだと読んでいます。Silverlight UIの変更によりアプリケーションがフリーズする

ありがとうございました

答えて

2

集中的な作業を行うには、BackgroundWorkerを使用する必要があります。

BackgroundWorker on MSDN

これは、作業が完了した後に、メイン/ UIスレッド上で実行されますイベント(RunWorkerCompleted)を持っています。

編集:

あなたのバックグラウンドジョブがUIを更新する必要がある場合は、ディスパッチャを使用することができます。

Dispatcher.BeginInvoke on MSDN

例:

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

の仕事のほとんどはUIを変更しています要素。だから、それらをBackgroundWorkerに入れることは解決策ではない – Himberjack

+0

私の答えを編集中... – jv42

関連する問題