public void SendMessage(string message)
        {
            MethodInvoker method = delegate { SendMessageHandler(message); };
            if (InvokeRequired)
                BeginInvoke(method);
            else
                method.Invoke();
        }跟委托书上的格式和方法不同啊~本程序中未声明委托。不知道怎么理解。请达人分析下。谢谢

解决方案 »

  1.   

    要定义这个吧
    public delegate void SendMessageHandler(string message);
      

  2.   

    你在“SendMessageHandler” 上右键-》转到定义,应该可以找到类似下面的定义吧
    public void SendMessageHandler(string message) { } 
      

  3.   

    MethodInvoker method = delegate { SendMessageHandler(message); };
     
     这个就是一个委托的声明
      

  4.   

    MethodInvoker才是委托,而SendMessageHandler是具体方法,不是委托。
    if判断的是InvokeRequired,也就是this.InvokeRequired,那么这个委托的回调也就必须是this发起,那么
    “BeginInvoke(method);”等同于“this.BeginInvoke(method);”意思是当前控件所在线程异步回调这个要执行的委托
      

  5.   

    那就可以啊
     MethodInvoker method = delegate { SendMessageHandler(message); };
    就是定义个匿名委托啊。{}内为方法实体