私はC#とxamlを使用してWindowsストア8.1アプリケーションを開発しています。 iは、ファイルの後ろにコードからUIを更新しようとした場合、私は以下のコードを追加したアプリケーションは、別のスレッド用にマーシャリングされたインターフェイスを呼び出しました。窓8.1のストアアプリ
「アプリケーションが別のスレッドのために整列されたインターフェースと呼ばれる」例外を得UIを更新する
await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { statustextblk.Text = "Offline sync in progress..."; } );
これは問題なく動作しています。しかし、私はオフライン同期が完了した後、同じtextblackを更新したい。したがって、このために、私は以下のコードを書いて、コードがこの
await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { statustextblk.Text = "Offline sync in progress..."; } ); await SharedContext.Context.OfflineStore.ScheduleFlushQueuedRequestsAsync(); Debug.WriteLine("Refresh started"); if (SharedContext.Context.OfflineStore != null && SharedContext.Context.OfflineStore.Open) await SharedContext.Context.OfflineStore.ScheduleRefreshAsync(); RefreshSuccess = true; await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { statustextblk.Text = "Offline sync completed..."; Task.Delay(1000); statustextblk.Text = ""; } );
のように見えます。しかし、表示されていない「オフライン同期が完了した...」というメッセージをUIに。
メソッドが実行されたらどのように表示することができますか?
誰かお手伝いできますか?事前に
おかげ
あなたは '(1000)' Task.Delayをawait'ませんでした( 'メッセージをクリアします)次の行は、すぐに実行されますので。 –
ちょっとレイモンド..あなたの返事をありがとう。このメッセージはUIに「オフライン同期が完了しました...」と表示されません。私はTask.Delay(1000)とコメントしました。この行も同様に –