Интеграция цикла сообщений Windows (PeekMessage -> DispatchMessage) с boost.asioC++

Программы на C++. Форум разработчиков
Anonymous
Интеграция цикла сообщений Windows (PeekMessage -> DispatchMessage) с boost.asio

Сообщение Anonymous »

У меня есть приложение для Windows, которое использует boost.asio для ввода-вывода.
но asio io_context::run() выполняется в отдельном потоке, поскольку функция WinMain() имеет цикл while() { с функциями PeekMessage() и DispatchMessage().
псевдокод:

Код: Выделить всё

int WinMain(...) {

asio::io_context ios;
std::thread thread{[&ios](){ ios.run(); }};

MSG msg;
while ( ::PeekMessage(&msg, ...) ) {
switch ( msg.message ) {
...
}
::DispatchMessage(&msg);
}
}

Моя цель — избавиться от лишнего потока.
Итак, мой вопрос: как я могу интегрировать цикл сообщений Windows в цикл событий asio?>

Подробнее здесь: https://stackoverflow.com/questions/798 ... with-boost

Вернуться в «C++»