2017-07-16 6 views

Antwort

0

Das Folgende sollte funktionieren.

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

Da die ursprüngliche Frage erwähnt Wenn Sie in einer View-Model-Klasse arbeiten, können Sie stattdessen "this.Dispatcher" verwenden. Sich auf 'MainView' zu verlassen, führt zu Pausen, wenn die App mehr als eine Ansicht hat. –

+0

Wo würde ich diesen Code innerhalb der Task verwenden, wenn ich 'Update()' aufrufen möchte? –

+0

@AmirHusseinNargesian Sie können dies nur innerhalb Update() -Funktion setzen und fügen Sie Ihre Logik innerhalb der Dispatch-Handler. – thunderbird

-1

Sie können den Code unten verwenden Sie den Code auszuführen:

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

Und ich habe einen anderen Weg, es zu tun

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

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

+1

[Die Dokumentation] (https://docs.microsoft.com/en-us/uwp/api/Windows.UI.Core.CoreDispatcherPriority) sagt eindeutig, den Wert 'High' nicht zu verwenden. –

+0

@ PeterTorr-MSFT Thx, aber ich möchte sagen, dass Sie den Rang in diesem setzen können. – lindexi

Verwandte Themen