雪糕老师 2015-11-23 11:43 采纳率: 0%
浏览 1720

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条回答 默认 最新

  • threenewbee 2015-11-23 16:10
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 Qt下使用tcp获取数据的详细操作
  • ¥15 idea右下角设置编码是灰色的
  • ¥15 全志H618ROM新增分区
  • ¥20 jupyter保存图像功能的实现
  • ¥15 在grasshopper里DrawViewportWires更改预览后,禁用电池仍然显示
  • ¥15 NAO机器人的录音程序保存问题
  • ¥15 C#读写EXCEL文件,不同编译
  • ¥15 MapReduce结果输出到HBase,一直连接不上MySQL
  • ¥15 扩散模型sd.webui使用时报错“Nonetype”
  • ¥15 stm32流水灯+呼吸灯+外部中断按键