Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.03.2012, 16:53   #1
Fun_tick
 
Регистрация: 16.01.2012
Сообщений: 7
По умолчанию мультипоточное ожидание

Нигде в документации и в книгах по C# не нашел, как можно ждать сразу несколько событий (запустить 10 потоков и ждать, пока кто-то не закончится).
Fun_tick вне форума Ответить с цитированием
Старый 01.03.2012, 16:59   #2
Prizrak86
Форумчанин
 
Аватар для Prizrak86
 
Регистрация: 15.10.2011
Сообщений: 139
По умолчанию

я конечно не силен в потоках, но может в конце каждого потока просто нужно выполнить какую нибудь процедуру, в которой при помощи глобальной переменное будет отслеживаться, первое это вхождение в процедуру или нет, а процедура в свое очередь будет пускать при первом вхождении какую то операцию которую тебе нужно будет выполнить при первом завершении потока....
Программист это не профессия, программист - это образ жизни.
Prizrak86 вне форума Ответить с цитированием
Старый 03.03.2012, 13:00   #3
sergei64_89
Форумчанин
 
Регистрация: 20.04.2008
Сообщений: 139
По умолчанию

когда создаёшь поток,у тебя остаётся ссылка на поток.
th = new Thread(thread);
while (true)
{
if ( th.ThreadState== th.ThreadState=ThreadState.Stopped)
.......
}
sergei64_89 вне форума Ответить с цитированием
Старый 05.03.2012, 10:13   #4
Fun_tick
 
Регистрация: 16.01.2012
Сообщений: 7
По умолчанию

Спасибо за ответы, но всё это немного не то. Как в активном режиме опросить состояние потока, понятно.
Наверное, я не совсем корректно задал вопрос. В раннем С и в С++ были функции ожидания одного из пула событий. Тогда было бы понятно - повесил на каждый поток по событию и жди, пока какой-нибудь поплавок шевельнется.
Я вышел из положения с помощью семафора (ставлю семафор на 11 включений, запускаю 10 потоков, в каждом из которых в начале ставлю для семафора wait. В главном потоке тоже вешаю wait) Но это - чесать правое ухо левой рукой.
Хотелось бы более элегантное решение.
Fun_tick вне форума Ответить с цитированием
Старый 05.03.2012, 14:25   #5
nats
Пользователь
 
Регистрация: 15.10.2010
Сообщений: 65
По умолчанию

эм...а Join не подойдет?
nats вне форума Ответить с цитированием
Старый 05.03.2012, 15:00   #6
Fun_tick
 
Регистрация: 16.01.2012
Сообщений: 7
По умолчанию

join - это ожидание одного потока (и пока не кончится. будешь его ждать )
Fun_tick вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ожидание нажатия клавиши blinkapec Win Api 6 24.11.2010 22:06
Ожидание нажатия клавиши shurik_7866 Общие вопросы Delphi 2 25.04.2010 19:53
Ожидание завершения процесса Человек-Ололо Общие вопросы Delphi 2 08.03.2010 19:39
Ожидание подключения к серверу. i-cpp C/C++ Сетевое программирование 2 13.02.2010 23:15