感觉你贴出来的代码坑不少。ipc我直接用shared memory多,named pipe我不太有经验。这个函数会不会被并行调用?kernel层面对named pipe会有加锁/排队之类的操作吗?如果没有,那在user层面多少需要有个排队加锁的结构,那用asio的确没问题。
不过,就你这个情况来说,你现在需要一个work guard,但是相应的,你在关闭的时候需要有一个机制来reset这个work guard,不然你程序不能正常退出
【 在 z16166 的大作中提到: 】
: 改之前是这样的,单开一个线程执行run。
: m_thread = new std::thread([&]() { m_io->run(); });
: 本来这种单线程带超时的,用select()搞一下就行。用asio是杀鸡用牛刀了。
: ...................
--
FROM 115.205.236.*