如何实现多线程控件在返回主线程时正确显示文本?

更新于
2026-09-22 23:27:19
1阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计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