我正在用 C# 编写一个简单的 winforms 应用程序。我创建了一个工作线程,我希望主窗口响应完成其工作的胎面——只需更改文本字段中的一些文本,testField.Text =“Ready”。我尝试了事件和回调,但它们都在调用线程的上下文中执行,你不能从工作线程执行 UI。
我知道如何在 C/C++ 中执行此操作:从工作线程调用 PostMessage。我假设我可以从 C# 中调用 Windows API,但是没有更具体的 .NET 解决方案吗?
最佳答案
在来自已完成线程的事件回调中,使用 InvokeRequired
模式,正如对这篇 SO 帖子的各种回答所展示的那样。
C#: Automating the InvokeRequired code pattern
另一种选择是使用 BackgroundWorker
组件来运行您的线程。 RunWorkerCompleted
事件处理程序在启动工作线程的上下文中执行。
关于c# - 如何在 C# 中从工作线程发布 UI 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5316296/