c++ - 当发出特定事件信号时,立即退出正在运行的线程

标签 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. 在发生该异步事件时,抛出一个线程终止异常。

这没有用,所以我研究了一下,找到了类似于 this one 的答案.但出于某种原因,我觉得有一种更简单的方法可以实现这一点。在我着手实现上述想法之前,我只是想澄清一下。

谢谢!

最佳答案

一些搜索,我发现了这些:

关于c++ - 当发出特定事件信号时,立即退出正在运行的线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15308078/

相关文章:

c# - 使用windows服务和c#检测USB驱动器插入和移除

.net - WCF 可以托管在 Windows Nano Server 2016 上吗?

java - 是否需要将I/O操作同步到MySQL

c++ - CLucene 上的 "More Like This"

c++ - g++ 关于零文字的不一致

windows - Linux 相当于 DOS "start"命令?

JAVA : How to see the difference in output between a synchronized and normal thread counter?

java - 创建 1000 个线程来更改变量值

c++ - 如何检测析构函数中的堆栈展开

c++ - 内置运算符候选人