Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Bretbas
Каждому свое
349 / 119 / 32
Регистрация: 05.08.2013
Сообщений: 1,257
Завершенные тесты: 1
#1

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

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

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

Как сделать чтобы таймер дойдя до 0 стартовал снова и снова? - C++
Здравствуйте :) Как сделать чтобы таймер дойдя до 0 стартовал снова и снова? TimerSec = 59; TimerMin = 6; for(int i = TimerSec;...

Что такое потоки ввода, потоки вывода? - C++
Здарова всем! Не так давно уже прогаю на С++ и все НИКАК не могу понять, что такое потоки ввода, потоки вывода..! вот допустим...

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

снова о массивах - C++
Здравствуйте, уважаемые программисты! Написала небольшую тривиальную программку, которая находит сумму элементов строк массива, но такое...

Снова списки. - C++
Здравствуйте!!! Мне нужно сделать функцию, которая проверяет..если есть левая скобка и парная ей правая, то их обе нужно заменить на...

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

3
DU
1484 / 1130 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
23.02.2014, 23:55 #2
http://msdn.microsoft.com/en-us/library/ms687025(VS.85).aspx
после окончания ожидания по хендлам потоков можно определить, какой из них завершился.
функцию не помню.
0
Bretbas
Каждому свое
349 / 119 / 32
Регистрация: 05.08.2013
Сообщений: 1,257
Завершенные тесты: 1
24.02.2014, 00:40  [ТС] #3
ну эту функцию тоже знаю...наверное самое главное - это определить какой именно поток завершился
0
DU
1484 / 1130 / 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
1
24.02.2014, 01:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.02.2014, 01:21
Привет! Вот еще темы с ответами:

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

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

И снова логирование - C++
Есть желание сделать в своём приложении нормальную систему логирования. Должно быть несколько уровней логирования и несколько категорий...

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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