2017-07-16 127 views

回答

0

下面應該工作。

Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, 
() => 
{ 
    // update your UI here 
    Update(i) 
}); 
+0

既然提到了原來的問題在視圖模型類中運行,您可以使用'this.Dispatcher'來代替。如果應用程序擁有多個視圖,依靠「MainView」會導致中斷。 –

+0

我會在哪裏使用這段代碼,當我想調用'Update()'時,在Task中? –

+0

@AmirHusseinNargesian你可以把它放在Update()函數中,並在Dispatch處理程序中添加你的邏輯。 – thunderbird

-1

您可以使用下面的代碼來運行代碼:

await Window.Current.Dispatcher.RunAsync(CoreDispatcherPriority.High/* the rank */, 
() => 
{ 
    // run the code 
}); 

我有另一種方式來做到這一點

await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal /*the rank*/,() => { // run the code }); 

https://stackoverflow.com/a/38175976/6116637

+1

[文檔](https://docs.microsoft.com/en-us/uwp/api/Windows.UI.Core.CoreDispatcherPriority)明確表示不使用「High」值。 –

+0

@ PeterTorr-MSFT Thx,但我想說你可以在此設置排名。 – lindexi

相關問題