本帖最后由 loveyang7733 于 2013-08-29 09:28:24 编辑

解决方案 »

  1.   

    应该把调用事件的单个语句放到 Invoke 中,而不是把整个线程用 Invoke 执行,因为这样就没必要用线程了。
      

  2.   

    你说的应该是这么写吧:
    /// <summary>
    /// 启动Socket(委托)
    /// </summary>
    private void SocketStartInvoke()
    {
        //监听消息(广播和聊天)
        _ClientSocket = new ClientSocket(_LabelMsg);
        this.Invoke((_DelegateSocket)delegate() { _ClientSocket.StartUdpThread(); });
    }依然是卡住了!
      

  3.   

    事件在哪里,根本看不到,大概在 ClientSocket 里
      

  4.   

    Control.CheckForIllegalCrossThreadCalls = false;
      

  5.   

    可以打印些Log出来,看看在哪里卡住的。
      

  6.   

    是在【_ClientSocket.StartUdpThread();】这个方法里卡住了,
    但是我是新开辟的一个线程去执行的这个方法,主线程应该不会卡吧我不用委托的话,主线程运行是正常的,但是使用委托后,主线程也卡住了