我想從線程內部調用Update(int i)
。我曾經使用BeginInvoke()
,但它在UWP中不可用。如何從UWP中的另一個正在運行的線程調用UI線程中的方法?
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
}
}
既然提到了原來的問題在視圖模型類中運行,您可以使用'this.Dispatcher'來代替。如果應用程序擁有多個視圖,依靠「MainView」會導致中斷。 –
我會在哪裏使用這段代碼,當我想調用'Update()'時,在Task中? –
@AmirHusseinNargesian你可以把它放在Update()函數中,並在Dispatch處理程序中添加你的邏輯。 – thunderbird