Как сделать задержку для всех потоков?
-
Нужно что бы каждый поток подходил до определенной точки и останавливался, после того как все потоки дойдут до этой точки, переходило по ссылке (один раз), ожидание указаное время и все потоки одновременно продолжают работу. Не смог найти реализации именно в таком виде, буду благодарен за помощь.
-
@Andrey550 плохо искали.
один из вариантов: глобальную переменную. счетчик сколько потоков дошло до неё. проверка в цикле этого счётчика - ожидание всех потоков
-
Я в общем понимаю как это должно быть, но вот как это сделать, пока опыта не хватает, только учусь...
-
@Andrey550
создаешь функцию. там кнопка On... её название.там устанавливаешь глобальную переменную.
в функции потока добавляешь конструкцию вида:
где COUNT - количество готовых потоков
если COUNT равняется 6 то идет переход на выполнение последующих задач
иначе ждёт 10 сек(10`000 миллисекунд) и повторно проверяется условие.цифры названия и тд можно менять под своё усмотрение.
вообще в обучающих материалах вроде было..
-
@tet-vivi это я понял, а после этого как добавить переход по ссылке только на одном потоке и после что бы одновременно продолжили работу все потоки?
-
@Andrey550 said in Как сделать задержку для всех потоков?:
ход по ссылке только на одном потоке и после что бы одновременно продолжили работу все потоки?
-
@tet-vivi спасибо, все работает
-
@Dodok да, в таком виде остальные потоки не ждут выполнение первого, а мне нужно что бы ждали и продолжали работу все одновременно после того как первый поток выполнит нужные действия.
-
@Andrey550 said in Как сделать задержку для всех потоков?:
да, в таком виде остальные потоки не ждут выполнение первого, а мне нужно что бы ждали и продолжали работу все одновременно после того как первый поток выполнит нужные действия.
Еще одна глобалка, как будет выполнена все идут вперед. Пока нет спят.
-
This post is deleted!
-
@tet-vivi по первому кругу этот метот работает, по второму уже нет.. как решить? по второму кругу все потоки пришли и ничего...
-
@Andrey550 Глобальная переменная,та что вторая.Как первый поток сделал что надо меняет содержимое на true как остальные потоки стартанули меняем на false
-
@Andrey550 можно пример того что вы намутили?
экстрасенсов тут нету, вроде.
-
@Andrey550 said in Как сделать задержку для всех потоков?:
@tet-vivi по первому кругу этот метот работает, по второму уже нет.. как решить? по второму кругу все потоки пришли и ничего...
После выполнения каждого круга нужно обнулять глобальную переменную (устанавливать ее в исходное состояние)