首页 新闻 会员 周边

invoke methodinvoker 是什么作用

0
悬赏园豆:10 [已解决问题] 解决于 2013-12-08 20:22

                             Invoke(                         //调用窗体线程
                            (MethodInvoker)(() =>//使用Lambda表达式
                              {
                                tssLabel_Time.Text =//显示程序启动时间
                                    string.Format(
                                    "系统已经运行: {0}天{1}小时{2}分{3}秒",
                                    P_TimeSpan.Days, P_TimeSpan.Hours,
                                    P_TimeSpan.Minutes, P_TimeSpan.Seconds);
                            });
              
           在msdn查了  可是一点不懂 invoke ,methodinvoker 这两句话什么意思   

太笼统的主页 太笼统 | 初学一级 | 园豆:4
提问于:2013-12-02 21:52
< >
分享
最佳答案
0

首先 Invoke 这个方法 是楼主代码所在窗体基类的一个方法

函数签名:

  void Invoke(MethodInvoker method);

他的功能是让 调用Invoke方法的线程可以操作 窗体线程创建的对象

MethodInvoker 是一个委托类型

(MethodInvoker)( () => {...})  这句是说把 lambda表达式 强制转换成MethodInvoker类型。

收获园豆:10
sylvester.lee | 菜鸟二级 |园豆:238 | 2013-12-03 23:33
其他回答(2)
0

通过反射,反射出具体方法的实例,你这里的使用相当于定义了一个匿名方法.也就是你的线程调用的方法

源坊 | 园豆:9 (初学一级) | 2013-12-03 08:49
0

Windows的UI的控件更新需要在线程安全下进行,Invoke就是用来保证了这个

水晶途途 | 园豆:1443 (小虾三级) | 2013-12-03 11:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册