为何多线程控件返回主线程时,文本显示总是如此漫长?
- 内容介绍
- 文章标签
- 相关推荐
本文共计151个文字,预计阅读时间需要1分钟。
从msdn摘录的代码实现异步调用以设置RichTextBox控件text属性:
csharppublic delegate void SetTextCallback(string text);
public void SetTextBoxText(string text){ if (this.InvokeRequired) { this.Invoke(new SetTextCallback(SetTextBoxText), text); } else { this.Text=text; }}
摘自msdn代理实现异步调用以设置richTextBox控件text属性delegatevoidSetTextCallback(stringtext);如果调用线程和创建TextB摘自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(); } }
转:www.cnblogs.com/xinyuxin912/archive/2009/03/31/1426206.html
本文共计151个文字,预计阅读时间需要1分钟。
从msdn摘录的代码实现异步调用以设置RichTextBox控件text属性:
csharppublic delegate void SetTextCallback(string text);
public void SetTextBoxText(string text){ if (this.InvokeRequired) { this.Invoke(new SetTextCallback(SetTextBoxText), text); } else { this.Text=text; }}
摘自msdn代理实现异步调用以设置richTextBox控件text属性delegatevoidSetTextCallback(stringtext);如果调用线程和创建TextB摘自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(); } }
转:www.cnblogs.com/xinyuxin912/archive/2009/03/31/1426206.html

