Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我SetWindowHookEx()在工作线程中使用了 Windows API,并使用Application.Run().
SetWindowHookEx()
Application.Run()
现在,我想停止消息泵并退出工作线程,但我没有终止线程的好方法。
或者,我正在使用Thread.Abort()方法来终止线程,但不推荐使用这种方法来优雅地终止线程。
Thread.Abort()
谁能建议如何从 UI 线程或主窗体优雅地关闭消息泵,以便工作线程自动返回并退出?
与其使用无参数,不如使用Application.Run接受ApplicationContext.
Application.Run
ApplicationContext
应用程序上下文有一个ExitThread方法可以优雅地结束消息循环。
ExitThread
为什么不直接从另一个线程调用 Application.Exit 呢?
如果您优雅地处理 Thread.Abort() 将在工作线程中导致的 ThreadAbortException,那么中止线程并没有什么不优雅的。