今天寫代碼的時候遇到了個小問題,在線程裏改UI代碼,然後程序就gg了, 其實這個問題再android中也有。
廢話就不多說了 ,直接看代碼吧
Thread aa = new Thread(startDelegate);
aa.Start();
private void startDelegate()
{
while(true)
{
this.Dispatcher.Invoke(new Action(checkstate));//這裏的checkstate是函數名
if (eq == true)
break;
}
}
首先是創建一個線程, 然後通過this.Dispatcher.Invoke(new Action(checkstate)); 調用一個函數去執行UI線程的操作。當然, 你可以看到,我這裏有用委託的跡象, 確實,我用委託去試着改UI,但是沒有成功(應該是可以的,只是我的代碼寫壞了)。
其次還有一種新的方法是使用async/await來處理。
這裏我也是參考別人的, 詳情請看大牛的博客