C++;跨线程异常抛出 你好,我现在正在尝试在C++中实现一个计时器,在用户空闲后一定时间内自动注销用户。我想做的是,当用户输入一个命令时,从main调用NotIdleException,运行sleep for 15min函数的线程从计时器开始重新启动

C++;跨线程异常抛出 你好,我现在正在尝试在C++中实现一个计时器,在用户空闲后一定时间内自动注销用户。我想做的是,当用户输入一个命令时,从main调用NotIdleException,运行sleep for 15min函数的线程从计时器开始重新启动,c++,timer,C++,Timer,计时器的代码位于此处 我遇到的问题是我想从主线程调用这个异常,并让它由计时器线程中的try-catch处理。在C++(跨平台)中有什么方法可以做到这一点吗? < P>我简要地看了一下你的代码,但是没有例子说明它是如何被调用/使用的。 如果您正在寻找一种跨线程传输异常的方法,那么如果填充future的线程生成异常,则std::future(在C++11中)将在调用其get()成员函数时传播异常。 您还可以查看std::condition_变量,它可以通知线程(也是一个C++11特性) 很难说,

计时器的代码位于此处


我遇到的问题是我想从主线程调用这个异常,并让它由计时器线程中的try-catch处理。在C++(跨平台)中有什么方法可以做到这一点吗?

< P>我简要地看了一下你的代码,但是没有例子说明它是如何被调用/使用的。 如果您正在寻找一种跨线程传输异常的方法,那么如果填充future的线程生成异常,则std::future(在C++11中)将在调用其get()成员函数时传播异常。

您还可以查看std::condition_变量,它可以通知线程(也是一个C++11特性)


很难说,因为没有明确的语句说明代码将如何使用,但我认为std::condition_变量将是一个更好的设计,适合您正在尝试的操作
boost::thread
s可以在睡眠时中断(),这会在中断的线程中引发异常。请在问题中包含相关代码,同时尽量保持大小合理。问题或答案中的链接是可以的,只要问题/答案可以在没有链接的情况下独立运行。是否要使用异常在线程之间传递(非异常)消息?请不要担心,这可能是实现这一点最糟糕的方式。