2

Windows Azure Mobile Service からデータを受信して​​ユーザーに表示する小さな WP8 アプリを作成しています。

これで、Azure サービスと対話してデータを取得し、メインの UI スレッドが他の処理を行っている間に UI をデータで更新する別のスレッドができました。

以下の方法を試しましたが失敗しました...

  1. 別のスレッドを作成しましたが、このスレッドはコントロールにアクセスできないため、UI を更新できません

  2. スレッドを作成しましたBackgroundWorkerが、Azure Mobile Service の await メソッドを呼び出すと、ワーカー スレッドが完了イベントを呼び出し、ProgressChangedイベントを呼び出すと例外で失敗します: 操作は既に完了しています

誰か助けてくれませんか?

4

2 に答える 2

5

BeginInvokeディスパッチャーのメソッドを使用して、別のスレッドから UI を更新できます。

Deployment.Current.Dispatcher.BeginInvoke(() =>
{
    //Update the UI controls here
});

正確には、別のスレッドから実際に UI を更新するのではなく、メイン スレッドが使用可能になったときにアクションを実行できるようにアクションをキューに入れます。

于 2013-07-11T17:06:10.583 に答える