C#中线程里调用winform上的控件,问题。求助。

废话不多说,我直接贴代码了。程序很简单。我摘抄的网上的。
图片说明
上图是个界面。

然后程序里先是一个类。如下:
class ClientThread
{
Encoding encoding = Encoding.GetEncoding("GB2312");
private Socket client;
public string data = null;
private byte[] receiveBytes = new byte[1024];
private int recCount;

        public ClientThread(Socket ClientSocket)
        {
            this.client = ClientSocket;
        }

        public void ClientServer()
        {
            string ip;

            try
            {
                while (true)
                {
                    recCount = client.Receive(receiveBytes, receiveBytes.Length, 0);
                    ip = client.RemoteEndPoint.ToString();
                    byte[] clientIP = Encoding.Default.GetBytes(ip);


                        if (recCount != 0)
                        {
                            data = encoding.GetString(receiveBytes, 0, recCount);
                            client.Send(encoding.GetBytes("OK"), 2, 0);
                        }
                        else
                        {
                            break;
                        }


                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("出现异常:" + ex.ToString());
            }
        }

}

接下来就是开个线程了。
 private void button1_Click(object sender, EventArgs e)

{
newsocket.Bind(ipep);
newsocket.Listen(10);

     while (true)
    {
       Socket client = newsocket.Accept();
       newclient = new ClientThread(client);
       Thread newthread = new Thread(new ThreadStart(newclient.ClientServer));
        newthread.Start();
      }

}

现在我想 在界面里的textbox1.text 中显示线程中接收的数据。但是我现在调了好久没弄出来,我不知道哪里有问题。我是个新手,希望大神指点一二,谢谢了。

1个回答

data = encoding.GetString(receiveBytes, 0, recCount);
this.Invoke(new Action(() => { textBox1.Text = data; }));

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问