摘自msdn
// 代理实现异步调用以设置richTextBox控件text属性 delegate void SetTextCallback(string text);
// 如果调用线程和创建TextBox控件的线程不同这个方法创建 // 代理SetTextCallback并且自己通过Invoke方法异步调用它 // 如果相同则直接设置Text属性 private void SetText(string text) { // InvokeRequired需要比较调用线程ID和创建线程ID // 如果它们不相同则返回true if (this.tbxMessage.InvokeRequired) { if (!this.IsDisposed) { SetTextCallback d new SetTextCallback(SetText); this.BeginInvoke(d, new object[] { text }); } } else { tbxMessage.AppendText(text "\n"); tbxMessage.ScrollToCaret(); } }
转:https://www.cnblogs.com/xinyuxin912/archive/2009/03/31/1426206.html