Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Bretbas
181 / 40 / 5
Регистрация: 05.08.2013
Сообщений: 673
Завершенные тесты: 1
#1

И снова потоки - C++

23.02.2014, 23:08. Просмотров 206. Ответов 3
Метки нет (Все метки)

И опять работа с потоками...Как она меня напрягает последнее время) Но нужно научиться, нужно сделать то, что я задумал. Думаю вы поможете мне в этом)
Итак, есть 3 потока - START, KEYPRESSED, MAIN(главный поток).
Главный поток MAIN запускает сразу два потока одновременно - START и KEYPRESSED, и ждет их завершения. Но он должен ждать их завершения очень интересно:
Если завершиться поток START, то мы завершаем самостоятельно поток KEYPRESSED и возвращаемся в поток MAIN.
Если завершиться поток KEYPRESSED, то мы приостанавливаем поток START, возвращаемся в MAIN и зная что завершился поток KEYPRESSED, вывести соответствующее сообщение, на пример "KEYPRESSED THE END".
Как такую систему потоков можно осуществить? Работаю с WinAPI, но можно объяснить и на уровне стандартной библиотеки C++ 11 - std. Есть функция WaitFoSingleObject, которая при передаче соответствующего параметра ждет завершения потока. Но как сделать,чтобы мне ждать завершения одного из двух потоков, и точно знать, какой поток завершился, вот это скорее всего мне нужно.
Помогите пожалуйста, нужно очень для продолжения выполнения задачи. Дальше этого не могу двигаться(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.02.2014, 23:08     И снова потоки
Посмотрите здесь:

C++ Снова палиндромы с++
И снова malloc... C++
C++ И снова палиндром
C++ и снова С++
C++ Снова Pacman
C++ Снова о локализации
C++ Снова конструктор
C++ и снова змейка
C++ снова pow
C++ И снова argv[]
и снова графика в C++ C++
C++ Снова try catch

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1479 / 1055 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
23.02.2014, 23:55     И снова потоки #2
http://msdn.microsoft.com/en-us/libr...25(VS.85).aspx
после окончания ожидания по хендлам потоков можно определить, какой из них завершился.
функцию не помню.
Bretbas
181 / 40 / 5
Регистрация: 05.08.2013
Сообщений: 673
Завершенные тесты: 1
24.02.2014, 00:40  [ТС]     И снова потоки #3
ну эту функцию тоже знаю...наверное самое главное - это определить какой именно поток завершился
DU
1479 / 1055 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
24.02.2014, 01:21     И снова потоки #4
читайте внимательнее документацию:
в указанной ссылке есть инфа:
If bWaitAll is FALSE, the return value minus WAIT_OBJECT_0 indicates the lpHandles array index of the object that satisfied the wait. If more than one object became signaled during the call, this is the array index of the signaled object with the smallest index value of all the signaled objects.
или так:
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
Yandex
Объявления
24.02.2014, 01:21     И снова потоки
Ответ Создать тему
Опции темы

Текущее время: 23:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru