Сценарий: - Мой основной поток (UI) (поток «M») запускается и раскручивает рабочий поток («W») для управления некоторым оборудованием.- "W" хочет отправлять уведомления о прогрессе на "M" очень часто.- Уведомление-вызов не может блокировать «W» ... «W» необходимо совершить вызов и немедленно вернуться;«M» обработает уведомление асинхронно и ничего не вернет «W».- «M» должен быть уведомлен обратным вызовом, запущенным в потоке «M».- Должен иметь возможность передавать данные (не беспокойтесь о поточной безопасности данных).
.NET имеет именно такую возможность в своем классе System.ComponentModel.AsyncOperation, но я хочу создать кросс-платформенный код, а не только .NET или даже строго Win32 (хотя моя 1-я платформа является родной c ++ для Win32).
Использование Boost было бы плюсом.
Я читал это: Повышение: запускать и забывать асинхронный вызов функции? , но мне интересно, есть ли более простое желание, чем раскрутить дополнительные вспомогательные потоки.
Любые идеи и / или ссылки будут высоко оценены!-Dave