雪糕老师 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 flask项目,怎么使用AJAX传数据库数据到echarts图表的data里,实现异步加载数据。
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?