首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

如果在自个儿定义的类中写一个类似invoke()的跨线程回调方法

2013-11-23 
如果在自己定义的类中写一个类似invoke()的跨线程回调方法本帖最后由 iloli 于 2013-10-30 22:46:52 编辑

如果在自己定义的类中写一个类似invoke()的跨线程回调方法
本帖最后由 iloli 于 2013-10-30 22:46:52 编辑 我自己做了一个通讯类,在类中会启动新的线程A来工作。由于在线程A中会修改主UI线程中的控件,所以想在这个通讯类中写一个类似与控件的invoke()方法,这样可以在需要的时候从线程A切换到主UI线程中去执行一个方法,等这个方法结束后再切回这个线程A中。

我尝试过在启动新线程A时 传一个委托参数过去,然后在线程A中去执行这个委托。但发现即使是这样 在执行这个委托的时候 依然是在线程A中执行的,并没有切回主UI线程中去执行。

求大侠不吝赐教! 跨线程回调 线程
[解决办法]
本来就应该在UI线程中获取SynchronizationContext.Current来设置,你在A类的构造函数或声明中设置都是不安全的,因为你不知道A类的构造函数或声明是在哪个线程中执行的,你无法控制,你那样做就是自找麻烦。

热点排行