try
            {
                port = Int32.Parse(textBox1.Text);
            }
            catch { MessageBox.Show("Please enter a number!"); }
            try
            {
                listener = new TcpListener(port);
                listener.Start();
                Thread thread = new Thread(new ThreadStart(myThread));
                thread.Start();

                MessageBox.Show("设置成功!!");
            }
            catch (Exception ee) { MessageBox.Show(ee.Message); } public void receive()
        {
            try
            {
                socket = listener.AcceptSocket();//在这个位子程序就无响应 了            }
            catch { return; }            .......
        public void myThread()
        {
            if (textBox2.InvokeRequired || textBox3.InvokeRequired)
                Invoke(new myDel(receive));     //通过Invoke执行委托,从而去执行线程想要完成的任务                }帮忙求解哈,

解决方案 »

  1.   

    如何修改呢?
     不加委托 线程直接 调用 receive()方法就不会出现 那情况。
      

  2.   

    listener = new TcpListener(port);
                    listener.Start();
    将上面的语句写到线程中
      

  3.   

                try
                {
                    listener = new TcpListener(port);
                    listener.Start();
                    socket = listener.AcceptSocket();
                }
                catch { return; }这样了还是不行
      

  4.   

    放到 myThread() 方法里就OK 了,这样写对程序的效率等有没啥影响喃?