C++跨线程异常引发
C++ Cross Thread Exception Throwing
您好,我目前正在尝试在C++中实现一个计时器,该计时器在用户空闲一定时间后自动注销用户。我想做的是当用户输入命令时,从main调用NotIdleException,并且运行睡眠15分钟函数的线程从计时器的开头重新启动
计时器的代码位于此处http://pastebin.com/tw1YGcmu
我遇到的问题是我想从主线程调用此异常,并由计时器线程中的 try catch 处理它。有什么方法可以在C++(跨平台!
我简要地查看了您的代码,但没有如何调用/使用它的示例。
如果您正在寻找一种跨线程传输异常的方法,如果填充未来的线程生成异常,则 std::future(在 C++11 中)将在调用其 get() 成员函数时传播异常。标准::未来::获取
您还可以查看 std::condition_variable,它可以通知线程(也是 C++11 功能)。
这很难说,因为没有明确说明如何使用你的代码,但我认为 std::condition_variable 对于你想要做的事情来说会是一个更好的设计。
相关文章:
- 异常属于C++中的线程还是进程
- 是什么导致了Unity 3D中的"错误线程异常"?
- C++线程库异常
- zeromq 在 I/O 线程中引发异常
- 如果不包含 pthread,为什么 GCC 的线程标准库实现会抛出异常?
- SIGABRT 和线程相关的异常,但在调试期间工作正常
- C++子线程抛出异常
- 防止线程在处理异常后在分离时调用 std::terminate()
- 多线程异常和锁定
- 线程中的异常 "main" java.lang.UnsatisfiedLinkError: no JNTIest in java.library.path
- STD ::线程和异常处理
- 终止无效异常(多线程合并排序)
- 当不调用thread.join()时,C 多线程异常
- 联接线程时出现异常
- 如何使用QThreads使无锁生产者-消费者线程交换更加异常安全
- 异常不会使用boost :: future/boost :: Promise跨线程正确传播
- JNI : 线程"AWT-EventQueue-0" java.lang.UnsatisfiedLinkError 中的异常
- 关于多线程应用程序中的 STL 字符串异常
- 如何在不同的上下文(例如线程)中保留原始异常类型信息
- 在没有活动异常线程的情况下终止调用