我正在用 C# 编写一个简单的 winforms 应用程序。我创建了一个工作线程,我希望主窗口响应线程完成其工作 - 只需更改文本字段中的一些文本,testField.Text =“Ready”。我尝试了事件和回调,但它们都在调用线程的上下文中执行,并且您无法从工作线程执行 UI。
我知道如何在 C/C++ 中执行此操作:从工作线程调用 PostMessage。我假设我可以从 C# 调用 Windows API,但是没有更特定于 .NET 的解决方案吗?
在已完成线程的事件回调中,使用InvokeRequired
模式,正如这篇 SO 帖子的各种答案所证明的那样。
C#:自动化 InvokeRequired 代码模式 https://stackoverflow.com/questions/2367718/c-automating-the-invokerequired-code-pattern
另一种选择是使用BackgroundWorker
组件来运行你的线程。这RunWorkerCompleted
事件处理程序在启动工作线程的线程上下文中执行。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)