【发布时间】:2023-03-07 19:15:01
【问题描述】:
VB6 有一个 DoEvents() 方法,您可以调用该方法将控制权返回给操作系统并在单线程环境中模拟多线程行为。
什么是 .NET 框架等效于 VB 6 DoEvents()?
【问题讨论】:
-
我认为您正在考虑 Doevents。 Yield 是一种用于枚举处理的 .NET 方法。 .NET 中的等价物是 Application.DoEvents() (无论使用什么语言)
-
Application.DoEvents() == DoEvents? -
@Marlon:我明白了。实际上,我记得每隔几年问一次这个问题。我不记得我上次问是什么时候了。你可能是对的,这可能是答案,但我的记忆让我失望。我还认为我在 System.Diagnostics.Process 类的一种方法中找到了替代品,但我记不清了。
-
@Marlon:我检查了文档。该 Application 类位于 System.Windows.Forms 程序集中。我假设它是应用程序(MFC WinApp 类或控制主窗口的创建、注册它以及将消息分派到 WndProc 的逻辑结构/类)。我正在使用控制台应用程序。我可以引用 System.Windows.Forms dll,但这将是一个巨大的内存负担,我仍然不确定它是否可以工作。我想我会调查 Process 类的成员。
-
在人们再次尝试关闭它之前要明确一点
DoEvents()!==yield。谢谢。