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是操作控件的具體方法。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM