搜尋

首頁  >  問答  >  主體

c++ - Boost 开出来的线程怎么捕捉 Ctrl - c

如题,我用 boost::thread 开了一个线程,线程就做循环打印吧。但是这个程序跑起来以后,按 ctrl-c,并不会立即退出,而要等挺长一段时间。

请问怎么使得这个线程能够马上响应呢?

PHP中文网PHP中文网2804 天前777

全部回覆(1)我來回復

  • 伊谢尔伦

    伊谢尔伦2017-04-17 12:08:28

    ctrl+c會傳送一個SIGINT訊號。 boost::thread可能要完成一些資源清理工作後再退出。你也可以自己處理SIGINT。不過不推薦使用信號啊。 linux下用條件變數。在windows下MESSAGE跟EVENT都可以做這個事情。還有更好的方法是C++11裡面的條件變數(boost的執行緒函式庫已經進了11標準了)

    回覆
    0
  • 取消回覆