我正在尝试在 Windows 下等待带有 boost::asio 的信号,但我无法添加信号。这是我尝试过的:
boost::asio::io_service ioService;
boost::asio::signal_set quitSignals(ioService);
quitSignals.add(CTRL_C_EVENT);
quitSignals.add(CTRL_BREAK_EVENT);
quitSignals.add(CTRL_CLOSE_EVENT);
quitSignals.add(CTRL_LOGOFF_EVENT);
quitSignals.add(CTRL_SHUTDOWN_EVENT);
这为第一个(“无效的信号或错误”,0)提供了一个调试断言,并为其他的一个无效的参数异常。我是否使用了错误的信号编号?我使用的常量在 wincon.h 中定义如下:
#define CTRL_C_EVENT 0
#define CTRL_BREAK_EVENT 1
#define CTRL_CLOSE_EVENT 2
// 3 is reserved!
// 4 is reserved!
#define CTRL_LOGOFF_EVENT 5
#define CTRL_SHUTDOWN_EVENT 6