private static void ReceiveCallback(IAsyncResult ar)
{

    Socket client = (Socket)ar.AsyncState;
    int readLength = client.EndReceive(ar);
    string dMessage = Encoding.Default.GetString(buff,0,readLength);
    【 1 】
    client.BeginReceive (buff,0,256,0,new AsyncCallback(ReceiveCallback),client);

这是一个接受数据的回调函数。
我想在【 1 】的里面做将dMessage的字符串,显示到程序的窗体上的TextBox里去,可根本不能访问主窗体,请问该怎么办?

解决方案 »

  1.   

    采用委托的方法
    this.richTextBox1.Invoke(。。)
      

  2.   

    能具体的给段代码吗?我不是很懂啊。多谢了!只要能作到像this.textBox1.Text = dMessage;就行了。
      

  3.   

    private delegate void UPDATE_richtext(string s1);//委托更新UI线程
    this.richTextBox1.Invoke(new UPDATE_richtext(this.update_richtext),new object[]{dMessage});
    //委托方法
    private void UPDATE_richtext(string a)
    {

    this.richTextBox1.Text =a;
    }
      

  4.   

    自己创建一个接收数据的事件,具体的请看:
    http://bbs.pcicn.com/dispbbs.asp?boardID=100&ID=14536&page=1