【问题标题】:C# Invoke Action Cross Thread AccessC# 调用动作跨线程访问
【发布时间】:2010-01-22 17:23:55
【问题描述】:

您好,我是编程新手。

目前我的应用程序使用委托来处理/执行驻留在另一个类/对象中的方法。

但我收到一条错误消息,指出它们位于单独的线程中。所以在网上搜索后我想出了这个:

this.Invoke(new Action(delegate() { this.ChatRichTextBox.AppendText(EventArgs.commMessage); }));

这很好,接受我不知道发生了什么。我刚刚粘贴了代码,它工作了。

目前,虽然我需要以不同的方式执行此操作,因为编译器表示它不能在此操作中执行 >

请就如何最好地实现这一点提出建议?

非常感谢。

【问题讨论】:

  • 我不明白你说“它不能做 >
  • 我现在想离开我的电脑。直到那时。谢谢。

标签: c# .net delegates action invoke


【解决方案1】:

对 Windows 窗体控件的访问是 本质上不是线程安全的。如果你 有两个或多个线程在操作 控件的状态,有可能 强制控制进入 不一致的状态。其他 与线程相关的错误是可能的,例如 作为竞争条件和死锁。它 确保访问很重要 您的控件是在一个 线程安全的方式。

从 线程不是创建的线程 不使用 Invoke 的控件 方法。

【讨论】:

  • 这是否与 >
  • 它解释了跨线程操作(OP不了解)
猜你喜欢
  • 1970-01-01
  • 2017-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多