4

SetWindowHookEx()在工作线程中使用了 Windows API,并使用Application.Run().

现在,我想停止消息泵并退出工作线程,但我没有终止线程的好方法。

或者,我正在使用Thread.Abort()方法来终止线程,但不推荐使用这种方法来优雅地终止线程。

谁能建议如何从 UI 线程或主窗体优雅地关闭消息泵,以便工作线程自动返回并退出?

4

3 回答 3

4

与其使用无参数,不如使用Application.Run接受ApplicationContext.

应用程序上下文有一个ExitThread方法可以优雅地结束消息循环。

于 2013-02-08T17:31:51.963 回答
0

为什么不直接从另一个线程调用 Application.Exit 呢?

于 2013-05-10T10:00:46.470 回答
-2

如果您优雅地处理 Thread.Abort() 将在工作线程中导致的 ThreadAbortException,那么中止线程并没有什么不优雅的。

于 2013-02-08T17:27:44.330 回答