在做C#异步套接字编程时在新线程中使用回调函数,在回调函数里richTextBox1.AppendText()报错,错误原因---从不是创建控件的线程访问它。
解决方法:
利用委托机制。
private delegate void myDelegate(string str);
private void setRich(string str)
{
if (this.richTextBox1.InvokeRequired)
{
myDelegate md = new myDelegate(this.setRich);
this.Invoke(md, new object[] { str });
}
else
this.richTextBox1.AppendText(str);
}然后将richTextBox1.AppendText()方法换为this.setRich()即可。
版权声明: