textbox.Invoke

               // 启动接受线程
                Thread threadReceive = new Thread(ReceiveMessage);
                threadReceive.Start();


        // 接受消息方法
        private void ReceiveMessage()
        {
            IPEndPoint remoteIpEndPoint = new IPEndPoint(IPAddress.Any, 0);
            while (true)
            {
                try
                {
                    // 关闭receiveUdpClient时此时会产生异常
                    byte[] receiveBytes = receiveUdpClient.Receive(ref remoteIpEndPoint);
                    string receivemessage = Encoding.Unicode.GetString(receiveBytes);

                    // 显示消息内容
                    ShowMessage(lstMessageBox, string.Format("{0}[{1}]", remoteIpEndPoint, receivemessage));
                    ShowMessageInTextBox(tbReceive, receivemessage);
                }
                catch
                {
                    break;
                }
            }
        }
        // 通过委托回调机制显示消息内容
        delegate void ShowMessageInTextBoxCallBack(TextBox textbox,string text);
        private void ShowMessageInTextBox(TextBox textbox, string text)
        {
            if (textbox.InvokeRequired)
            {

                ShowMessageInTextBoxCallBack showmessageCallback = ShowMessageInTextBox;
                textbox.Invoke(showmessageCallback, new object[] { textbox, text });
            }
            else
            {
                textbox.Text = text;
            }
        }

 

posted @ 2017-10-23 14:34  sky20080101  阅读(732)  评论(0)    收藏  举报