捕获boost :: interrupted_exception是正确的吗?

时间:2012-09-07 06:32:24

标签: c++ exception boost

在我的应用程序中,可以使用boost :: thread :: interrupt来中断线程。我想重用已中断的线程,我可以捕获boost :: interrupted_exception,还是在意识形态上不正确?

1 个答案:

答案 0 :(得分:2)

  

我想重用已中断的线程

looks like可以(强调添加):

  

boost :: thread_interrupted只是一个普通的异常,所以它可以   抓住了,就像其他任何例外一样。这就是“中断”的原因   抛出异常时清除标志 - 如果线程捕获并且   处理中断,打断它是完全可以接受的   再次。 这可以用于,例如,当工作线程是   处理一系列独立任务 - 如果当前任务是   中断,工人可以处理中断并丢弃   任务,并转到下一个任务,然后可以反过来   中断。它还允许线程捕获异常和   通过其他方式终止自己,例如返回错误代码,或   将异常翻译为通过模块边界。