C++跨线程异常引发

C++ Cross Thread Exception Throwing

本文关键字:异常 线程 C++      更新时间:2023-10-16

您好,我目前正在尝试在C++中实现一个计时器,该计时器在用户空闲一定时间后自动注销用户。我想做的是当用户输入命令时,从main调用NotIdleException,并且运行睡眠15分钟函数的线程从计时器的开头重新启动

计时器的代码位于此处http://pastebin.com/tw1YGcmu

我遇到的问题是我想从主线程调用此异常,并由计时器线程中的 try catch 处理它。有什么方法可以在C++(跨平台!

我简要地查看了您的代码,但没有如何调用/使用它的示例。

如果您正在寻找一种跨线程传输异常的方法,如果填充未来的线程生成异常,则 std::future(在 C++11 中)将在调用其 get() 成员函数时传播异常。标准::未来::获取

您还可以查看 std::condition_variable,它可以通知线程(也是 C++11 功能)。

这很难说,因为没有明确说明如何使用你的代码,但我认为 std::condition_variable 对于你想要做的事情来说会是一个更好的设计。