Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
20 / 20 / 4
Регистрация: 31.10.2010
Сообщений: 1,240
Записей в блоге: 2
1

Поток в цикле (ждать остановки потока)

19.04.2013, 16:56. Показов 1505. Ответов 4
Метки нет (Все метки)

Добрый день.
Есть backgroundWorker1. Необходимо в цикле запускать его несколько раз backgroundWorker1.RunWorkerAsync(...).
Первый раз-то запускается, а второй уже ругается, что поток занят. Подскажите, как сделать что бы цикл ждал потока и n-ое количество раз запускался?
Спасибо
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.04.2013, 16:56
Ответы с готовыми решениями:

Как заставить поток ждать
Есть программа, в которую пользователь может залогиниться, за залогинивание отвечает отдельный...

Ждать 5 секунд в цикле for
Доброго времени суток, подскажите пожалуйста как сделать что бы цикл for шел не безостановок, а...

Как заставить поток ждать в некоторых ситуациях
Есть такой сценарий приложения: Приложение до запуска TCP кеширует данные из MySQL в...

QtConcurrent - заставить главный поток ждать своих детей
Вобщем не успел я разобраться QtConcurrent::run, и тут новая беда :) допустим у меня выполняется...

4
191 / 191 / 29
Регистрация: 03.12.2009
Сообщений: 853
19.04.2013, 17:14 2
Надо в цикле создавать поток и запускать его. Если вы создали поток вне цикла очевидно что вы его запустите только 1 раз. Заведённую машину вы же не сможете завести ещё раз, так и тут
1
20 / 20 / 4
Регистрация: 31.10.2010
Сообщений: 1,240
Записей в блоге: 2
19.04.2013, 17:15  [ТС] 3
da1z, а ждать ни как не получится пока поток остановится?
0
191 / 191 / 29
Регистрация: 03.12.2009
Сообщений: 853
19.04.2013, 17:28 4
Если вам нужно запустить один и тот же поток 10 раз подряд, а не одновременно, то можно и подождать. Но я не знаю как)

Добавлено через 2 минуты
Вот так можно подождать
C#
1
2
3
4
while (backgroundWorker1.IsBusy)
    {
      Thread.Sleep(100);
    }
1
20 / 20 / 4
Регистрация: 31.10.2010
Сообщений: 1,240
Записей в блоге: 2
19.04.2013, 17:41  [ТС] 5
сделал по извращенски.
Создал таймер на секунду, если поток занят мы пропускаем итерацию, если свободен, увеличиваем инкримент. И так пока инкримент не достигнет 10, потом вырубаем таймер)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.04.2013, 17:41
Помогаю со студенческими работами здесь

После остановки потока не проверяется условие
Всем привет.Написал код,скопировать в новую папку упорядоченные файлы из старой папки.Все работает...

Ждать завершения потока (без зависания формы)
Здравствуйте товарищи! Столкнулся с такой вот проблемой. Пишу программу, которая запускает...

Как заставить один поток ждать, пока работает другой
Здравствуйте, стоит такая задача: есть public static bool forks = new bool;// false - свободна...

Многопоточность: как запустить поток с возможностью остановки и приостановки извне?
Столкнулся с проблемой, что надо запустить поток с возможностью остановки и приостановки из вне...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru