C#怎么跨线程访问控件
网上的回答都是委托,我试了确实可以但是我的情况有点特殊,我封装了一个类去实现一些功能,但是会需要操作主线程的控件然后在子线程里面调用这个类这样我在封装类里面怎么实现委托?...
网上的回答都是委托,我试了确实可以
但是我的情况有点特殊,我封装了一个类去实现一些功能,但是会需要操作主线程的控件
然后在子线程里面调用这个类
这样我在封装类里面怎么实现委托?
如果非要这样做则又破坏了封装性,请问大家有好的方法没 展开
但是我的情况有点特殊,我封装了一个类去实现一些功能,但是会需要操作主线程的控件
然后在子线程里面调用这个类
这样我在封装类里面怎么实现委托?
如果非要这样做则又破坏了封装性,请问大家有好的方法没 展开
1个回答
展开全部
只能用委托,不推荐 CheckForIllegalCrossThreadCalls = false; 这种做法。
推荐一个封装好的 InvokeHelper 类(http://www.cnblogs.com/conmajia/archive/2012/08/05/multithread-gui-invoker.html),使用时只需要:
InvokeHelper.Invoke(<控件名>, "<方法名称>", <参数>);
InvokeHelper.Get(<控件名>, "<属性名称>");
InvokeHelper.Set(<控件名>, "<属性名称>", <属性值>);
即可。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询