Интеграция цикла сообщений 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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