капелюх чарiвника
Здравствуйте, уважаемые сообщники.
Интересует ответ на вопрос о событиях (events) в WinAPI.
Как известно, сигнатура установки события имеет вид
.
Соответственно, событие хватаем где-то в другом потоке с помощью, например,
.
Вопрос такой: как человеческим и максимально простым способом вместе с событием передать какие-то данные?
Например, конкретизируем, пусть необходимо передать указатель
Какие будут идеи?
Интересует ответ на вопрос о событиях (events) в WinAPI.
Как известно, сигнатура установки события имеет вид
.
Соответственно, событие хватаем где-то в другом потоке с помощью, например,
.
Вопрос такой: как человеческим и максимально простым способом вместе с событием передать какие-то данные?
Например, конкретизируем, пусть необходимо передать указатель
Какие будут идеи?
и ответ, меня интересующий, относится не столько к проблеме "возврат результата из потока", сколько к проблеме "синхронизация + передача данных".
хорошо, если ты предлагаешь мне использовать boost, в котором я не силён чуть более чем полностью, то как в нём реализовать синхронизированную передачу данных из потока в поток? для общего случая предположим, что потоки существуют в разных процессах.
хотелось бы увидеть по кусочку кода потока отправляющего данные и принимающего.
хорошо, если ты предлагаешь мне использовать boost, в котором я не силён чуть более чем полностью, то как в нём реализовать синхронизированную передачу данных из потока в поток? для общего случая предположим, что потоки существуют в разных процессах. хотелось бы увидеть по кусочку кода потока отправляющего данные и принимающего.
Из примера (отсюда: https://svn.boost.org/svn/boost/trunk/libs/thread/test/test_futures.cpp)
Выглядит всё достаточно просто.
то есть, ожидание будет происходить в этой строке, я правильно понимаю?
а если задачу чуть расширить. скажем, отправитель один, а получателей несколько.
будет ли отрабатывать .get() во всех ожидающих потоках?
да, надо будет попробовать.
хотя причиной изначального вопроса стало желание разобраться, как сделать подобное на низком уровне. родными средствами WinAPI, например.
так что ответ есть, благодарю за него, но чувство удовлетворённости не наступило =)
Ну, расковыряй потроха - посмотри, как устроено.
спасибо за наводку ещё раз.