今天写代码的时候遇到了个小问题,在线程里改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来处理。
这里我也是参考别人的, 详情请看大牛的博客