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

c# 多线程操作Winform控件,不得不通过Delegate操作吗

2013-03-01 
c# 多线程操作Winform控件,只能通过Delegate操作吗?在Winform开发中,如果在多线程中操作某一个控件的赋值

c# 多线程操作Winform控件,只能通过Delegate操作吗?
在Winform开发中,如果在多线程中操作某一个控件的赋值的时候,我一般都是这么写:

                                winform                  多线程              
[解决办法]
如果你听说过Action<>委托类型和Lambda表达式/匿名委托的话,那么,很明显,你就不需要专门定义委托方法了。
[解决办法]
如果只是winform开发的话在启动线程前加上 Control.CheckForIllegalCrossThreadCalls = false;就可以了,不用定义委托。
[解决办法]
引用:
引用:引用:如果你听说过Action<>委托类型和Lambda表达式/匿名委托的话,那么,很明显,你就不需要专门定义委托方法了。谢谢老大回复。
Lambda表达式我还真没用过。
请问您平时都怎么处理呢?(如果能有代码示例或参考资料的话,那就更加感激了~~嘿嘿)
=>这种方式  我Lambda表达式经常用。……

Lambda表达式基本上也要这样,只是省了委托声明那步
[解决办法]
control.Invoke(new SetControlTextDelegate((ct, v) => { ct.Text = v; }), new object[] { control, value });
=>
control.Invoke(new Action<Control, string>((ct, v) => { ct.Text = v; }), new object[] { control, value });
然后委托申明去掉

热点排行