从不是创建控件的线程访问它

在做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()即可。

版权声明:

posted on 2015-03-06 17:18  moffis  阅读(196)  评论(0编辑  收藏  举报

导航