我有一个用 C++ 编写的控制台 Windows 应用程序,它为某些逐步游戏的给定级别找到解决方案(或证明不存在解决方案)。我们称它为“求解器”。此应用程序从 Python 脚本循环启动,适用于所有游戏关卡。有些关卡太难了,需要几个小时甚至几天才能解决。
如果我的应用程序可以输出一些字符串,例如“太难级别”并退出,从而允许 Python 脚本进入下一个级别,如果它未能找到解决方案(或证明其不存在),例如, 30分钟。
如何在求解器启动 30 秒后中断它?从技术上讲,求解算法只是一个从 调用的递归过程int main()
。
我正在考虑创建辅助线程,该线程将在启动后 30 分钟唤醒并设置一些布尔标志。主要(解决)线程会定期检查这个标志。
这可行,但没有更简单更优雅的解决方案吗?