c++ - 如何创建一个新线程并在一段时间后终止它?

标签 c++ windows multithreading visual-c++

交易是:

我想创建一个线程,其工作方式类似于在 Windows 中执行一个新的 .exe,因此如果该程序(新线程)崩溃或进入无限循环:它将被优雅地杀死(超过时间限制后或当它崩溃)并正确释放所有资源。

当该线程成功时,我希望能够修改一些全局变量,其中可能包含一些数据,例如文件列表。这就是为什么我不能只从 Windows 执行外部可执行文件的原因,因为我无法访问在新线程中执行的函数内的变量。

编辑:进一步阐明了问题。

最佳答案

调用 CreateThread 后线程已经运行。

WaitForSingleObject 不是必需的(除非你真的想等待线程完成);但它不会“强制退出”线程;事实上,强制戒烟——即使可能——从来都不是一个好主意;你可能例如让资源保持打开状态或以其他方式让您的应用程序处于不良状态。

关于c++ - 如何创建一个新线程并在一段时间后终止它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8477130/

相关文章:

eclipse 中的 c++ Debug模式导致程序不等待 cin

windows - 为另一个用户运行 Windows 应用程序

Java 7 并行执行并未使用倒计时锁存器提高 REST API 的性能

c++ - 保护多线程访问的类实例

java - Java:两个线程同时对给定范围内的数字求和:当仅连接一个线程时,第二个线程的总和太大

c++ - std::unique_ptr<T>::reset 的强异常保证

c++ - 带阴影的聚光灯变成方形

c++ - 结构到文件然后再返回

c++ - GMock-模拟抽象类与另一个实现

c++ - unix 应用程序在发送 SIGINT 时在 fread() 期间挂起