终止在C#中运行消息循环的工作线程

我在工作线程中使用了SetWindowHookEx()
Windows API,并使用Application.Run()接收我运行Application Message Pump的操作系统通知.

现在,我想停止消息泵并退出工作线程,但我没有办法终止线程.

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

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

最佳答案 而不是使用无参数Application.Run使用接受ApplicationContext的重载.

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

点赞