委托使用方法总结

简单使用委托的几种方法总结

说明:Invoke同步BeginInvoke异步


无参数的委托:
          
           this.Invoke(new MethodInvoker(() =>     
                {
                    事件方法
                }));

  

       或者:


           this.Invoke(new MethodInvoker(delegate
            {
                事件方法
            }));

含参的委托:


       定义:
   
    public delegate int AddHandler(int a, int b);
        private int Add(int a, int b)
        {
            //事件方法
            return a + b;
        }


        调用:
            AddHandler handler = new AddHandler(Add);
            int result = handler.Invoke(1, 2);


含参的异步委托:

        定义:

        //异步日志记录委托
        private delegate bool AddDelegate(string userName, int logType, string logDetail, string ip, string provinceName);


        调用:

                AddDelegate dn = new AddDelegate(logBll.AddUserLog);
                //0 登陆 
                IAsyncResult isr = dn.BeginInvoke(userName, 0, "登录", IpHelper.GetLocalIP(), model.Province, null, dn);
                dn.EndInvoke(isr);


微软封装好的委托定义-直接使用

调用:

//无参同步
            Action s = new Action(openURL);
            s.Invoke();
//无参异步
            Action s = new Action(SeacherURL);
            s.BeginInvoke(null, "");
//带参异步
            Func fc=new Func(test);
            dynamic returndata = fc.Invoke(1, 2);
            fc.BeginInvoke(1, 2, null, null);

你可能感兴趣的:(.net技术,委托,使用委托的几种方法,c#实现)