zoukankan      html  css  js  c++  java
  • C# MethodInvoker委托的使用

    一、MethodInvoker是什么?

      MethodInvoker 表示一个委托,该委托可以执行托管代码中声明为void且不接受任何参数的任何方法。在对控件的 invoke 方法进行调用时或需要一个简单委托又不想自己定义时可以使用该委托。


    二、MethodInvoker如何使用

      使用MethodInvoker可以不用声明,将需要异步或同步执行的方法当做参数传递给委托实例化的MethodInvoker对象。

     MethodInvoker a = new MethodInvoker(Func);//Func需要异步执行的方法(Func为声明为void且不接受任何参数的方法)
                a.BeginInvoke(null,null);

      

      当Func方法异步执行完成后,需要对主线程的控件进行操作时代码如下

     MethodInvoker a = new MethodInvoker(Func);
                a.BeginInvoke((i =>
                {
                    if (i.IsCompleted)
                    {
                        if (Button1.InvokeRequired)
                        {
                            Action toDo = () => Button1.Visible = false;
                            ProWaitPanl.Invoke(toDo);
                        }
                        else
                        {
                            Button1.Visible = false;
                        }
                    }
                }), null);

      Button1代表需要进行操作的控件,toDo是操作控件的具体方法。

     

  • 相关阅读:
    t=20点击发送pingback
    Hibernate 序列生成主键
    oracle创建存储过程
    mysql允许某ip访问
    ORACLE用户解锁
    oracle查询锁表
    oracle杀掉执行的死循环存储过程
    oracle以逗号分隔查询结果列表
    查询oracle的session数
    oracle存储过程-获取错误信息
  • 原文地址:https://www.cnblogs.com/king2317/p/7435282.html
Copyright © 2011-2022 走看看