在发出特定事件的信号时立即退出正在运行的线程

时间:2013-03-09 06:43:00

标签: c++ windows thread-synchronization

考虑以下线程函数:

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 ++比较陌生,这就是我想到的(伪代码):

  1. 围绕try-catch
  2. 中的线程功能
  3. 发生异步事件时,抛出一个线程终止异常。
  4. 这不起作用,所以我研究了一下,找到了与this one类似的答案。但出于某种原因,我觉得有一种更简单的方法来实现这一目标。在我实施这个想法之前,我只是想要一些澄清。

    谢谢!

1 个答案:

答案 0 :(得分:1)

一些搜索,我找到了这些: