如何实现多线程控件在返回主线程时正确显示文本?
- 内容介绍
- 文章标签
- 相关推荐
本文共计195个文字,预计阅读时间需要1分钟。
从MSDN摘录的代码示例,实现异步调用以设置RichTextBox控件的Text属性,使用委托:
csharppublic delegate void SetTextCallback(string text);
// 创建TextBTextB=new TextB();
// 摘自MSDN// 实现异步调用以设置RichTextBox控件的Text属性public void SetTextAsync(string text){ if (this.InvokeRequired) { this.Invoke(new SetTextCallback(SetText), text); } else { SetText(text); }}
private void SetText(string text){ 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
本文共计195个文字,预计阅读时间需要1分钟。
从MSDN摘录的代码示例,实现异步调用以设置RichTextBox控件的Text属性,使用委托:
csharppublic delegate void SetTextCallback(string text);
// 创建TextBTextB=new TextB();
// 摘自MSDN// 实现异步调用以设置RichTextBox控件的Text属性public void SetTextAsync(string text){ if (this.InvokeRequired) { this.Invoke(new SetTextCallback(SetText), text); } else { SetText(text); }}
private void SetText(string text){ 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

