我正在開發使用C#和xaml的Windows應用商店8.1應用程序。 當我試圖從隱藏文件的代碼更新UI我得到一個例外是該應用程序稱爲一個接口,該接口被編組爲另一個線程。 Windows 8.1商店應用程序
「的應用程序調用的是被編組爲一個不同的線程的接口」
我已經添加了下面的代碼更新用戶界面
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中。
一旦執行該方法,我該如何在UI中顯示它?
有人可以幫我嗎?
在此先感謝
你沒有'await'的'Task.Delay(1000)'所以下一行(清除消息)立即運行。 –
嘿雷蒙德..感謝您的回覆。它甚至不會在UI中顯示「離線同步已完成...」這條消息。我評論Task.Delay(1000);這條線以及 –