我想从Thread内部调用Update(int i)
。我曾经使用过BeginInvoke()
,但它在UWP中不可用。
public class Viewmodel
{
Viewmodel()
{
//start task
var mainTask = Task.Factory.StartNew(() =>
{
MyThread();
});
}
private void MyThread()
{
int i;
while(condition)
{
//do somethings
Update(i)
}
}
private Update(int i)
{
//do somethings
}
}
答案 0 :(得分:1)
以下内容应该有效。
Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
{
// update your UI here
Update(i)
});
答案 1 :(得分:-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 });