超简单,三步就能在WPF里面多线程访问UI线程、主线程的控件

最近遇到这个狗血问题,以前在winform下毫无压力,构造里面加一句:Form.CheckForIllegalCrossThreadCalls = false 就天下太平了,WPF比较狗血:

 

第一步:

 

public delegate void delegate1();//定义委托

 

第二步:

 

写几个方法来操作控件:

private void  fun1()

 {button1.content = “生化危机4拍的太垃圾了。”;}

private void  fun2()

 {button2.content = “生化危机5这个游戏也很垃圾了。”;}

 

最后一步:

 

在线程里面,想触发控件事件的地方:

Dispatcher.BeginInvoke(DispatcherPriority.Normal, new delegate1(fun1));

Dispatcher.BeginInvoke(DispatcherPriority.Normal, new delegate1(fun2));

 

收工,回家打xb

 

另外,wpf还有一个狗血的地方,不能像winform一样直接 form1.handle.

必须这么做:WindowInteropHelper wih = new WindowInteropHelper(Application.Current.MainWindow);

然后 wih.handle。。。。。。。。。。。。。。。。。。。。。。。。。。。。

你可能感兴趣的:(vs2010,wpf,多线程,ui,winform,fun,button)