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

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

Войти
Регистрация
Восстановить пароль
 
Bretbas
188 / 47 / 7
Регистрация: 05.08.2013
Сообщений: 742
Завершенные тесты: 1
#1

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

23.02.2014, 23:08. Просмотров 218. Ответов 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++
помогите записать програмку которая сможет написать минимальное количество простых присваиваний, содержащих по одному умножению (без...

Снова о локализации - C++
Ранее было много рецептов относитьельно локализации консоли. Выведя, одну строку в поток на русском можно было, но после этого ввод в cin...

Снова Pacman - C++
Доброго времени суток, господа! Прошу помочь советом начинающему. Суть проблемы: в pacman'е собственного изготовления все вроде бы...

И снова argv[] - C++
Всем привет! Сегодня столкнулась вот c такой вот непонятностью: int _tmain(int argc, char *argv) { cout<<argv; }

И снова malloc... - C++
Всем привет! Читаю книгу "Герберт Шилдт - самоучитель С++" В нём такое задание: Измените класс stack так, чтобы память для стека...

и снова строки - C++
Написать программу считывающую текст и выводящую слова, начинающиеся с гласной буквы.

Снова палиндромы с++ - C++
итак есть условие задачи с++ "По N, M найти сумму тех чисел из, которые являются палиндромами. " вот решение набросал #include...

Снова конструктор - C++
в книге написан пример NoD(std::istream &is) { is >> *this; } а по заданию надо его еще сделать по умолчанию std::cin при...

и снова змейка - C++
у меня огромная просьба,задали на выходные написать змейку на С++ в Visual Sudio 2010, но очень много ограничений в плане библиотек,поэтому...

снова pow - C++
Вроде всё ясно, но!! Edit1->Text=FloatToStr(pow(0,0)); пишет единицу как положено, но при этом вылазит pow domain error..Какого?! ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1480 / 1056 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
23.02.2014, 23:55     И снова потоки #2
http://msdn.microsoft.com/en-us/libr...25(VS.85).aspx
после окончания ожидания по хендлам потоков можно определить, какой из них завершился.
функцию не помню.
Bretbas
188 / 47 / 7
Регистрация: 05.08.2013
Сообщений: 742
Завершенные тесты: 1
24.02.2014, 00:40  [ТС]     И снова потоки #3
ну эту функцию тоже знаю...наверное самое главное - это определить какой именно поток завершился
DU
1480 / 1056 / 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     И снова потоки
Ответ Создать тему
Опции темы

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