考虑以下线程函数:
UINT MyClass::threadFunc(LPVOID lParam)
{
// 1. Initialize stuff
// 2. Validate stuff
// 3. Do first task
// 4. Do second task
// 5. Un-initialize everything and return
}
这个线程是由我的应用程序中的一个对话框创建的。该线程将在对话框的生命周期中只运行一次(它是一个工作线程)。
在发生一些异步事件(可能是单击按钮,发出其他事件等)时,我想通知该线程立即返回,以便我的对话框可以正常退出(在等待该线程终止之后)。我不能只退出对话框,因为该线程仍将运行。
我对 C++ 比较陌生,这就是我所想到的(伪代码):
- 将线程函数包围在
try-catch
. - 在发生该异步事件时,引发线程终止异常。
这没有用,所以我进行了一些研究,并找到了与此类似的答案。但出于某种原因,我觉得有一种更简单的方法可以实现这一点。在我开始实施上述想法之前,我只是想澄清一下。
谢谢!