首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

socket聊天怎么将收到的信息更新到窗口

2012-04-22 
socket聊天如何将收到的信息更新到窗口?下面是我改的一部分接收用的代码,但是修改form中textbox的时候会线

socket聊天如何将收到的信息更新到窗口?
下面是我改的一部分接收用的代码,但是修改form中textbox的时候会线程不对,,,求助啊啊

Thread Listener = new Thread(new ThreadStart(ReceiveMsg));
  Listener.Start();

接收信息的:
  public void ReceiveMsg()
  {
  while (true)
  {
  lock (this)
  {
  IAsyncResult iar = udpReceive.BeginReceive(new AsyncCallback(ReceiveCallback), udpReceiveState);
  receiveDone.WaitOne();
  Thread.Sleep(100);
  }
  }
  }

  private void ReceiveCallback(IAsyncResult iar)
  {
  UdpState udpReceiveState = iar.AsyncState as UdpState;
  if (iar.IsCompleted)
  {
  Byte[] receiveBytes = udpReceiveState.udpClient.EndReceive(iar, ref udpReceiveState.ipEndPoint);
  receiveString = Encoding.ASCII.GetString(receiveBytes);
  MessageBox.Show(receiveString);
  AppendText(receiveString);《-----这里是修改textbox
  receiveDone.Set();
  }
  }

[解决办法]

C# code
 private delegate void AppendTextToRichTextBoxDelegate(string message);        private void AppendTextToRichTextBox(string message)        {            if (rtxtReceive.InvokeRequired)            {                AppendTextToRichTextBoxDelegate d = new AppendTextToRichTextBoxDelegate(AppendTextToRichTextBox);                rtxtReceive.Invoke(d, message);            }            else            {                rtxtReceive.AppendText= message;            }        } 

热点排行