Как сделать задержку для всех потоков?



  • Нужно что бы каждый поток подходил до определенной точки и останавливался, после того как все потоки дойдут до этой точки, переходило по ссылке (один раз), ожидание указаное время и все потоки одновременно продолжают работу. Не смог найти реализации именно в таком виде, буду благодарен за помощь.



  • @Andrey550 плохо искали.
    один из вариантов: глобальную переменную. счетчик сколько потоков дошло до неё. проверка в цикле этого счётчика - ожидание всех потоков



  • Я в общем понимаю как это должно быть, но вот как это сделать, пока опыта не хватает, только учусь...



  • @Andrey550
    создаешь функцию. там кнопка On... её название.

    c3343533-294a-4136-9e25-a88d7356c9e9-image.png

    там устанавливаешь глобальную переменную.

    в функции потока добавляешь конструкцию вида:

    97cf69b0-923b-4fcc-b963-244c6b4640bc-image.png

    где COUNT - количество готовых потоков

    если COUNT равняется 6 то идет переход на выполнение последующих задач
    иначе ждёт 10 сек(10`000 миллисекунд) и повторно проверяется условие.

    цифры названия и тд можно менять под своё усмотрение.

    вообще в обучающих материалах вроде было..



  • @tet-vivi это я понял, а после этого как добавить переход по ссылке только на одном потоке и после что бы одновременно продолжили работу все потоки?



  • @Andrey550 said in Как сделать задержку для всех потоков?:

    ход по ссылке только на одном потоке и после что бы одновременно продолжили работу все потоки?

    alt text



  • @tet-vivi спасибо, все работает



  • @Dodok да, в таком виде остальные потоки не ждут выполнение первого, а мне нужно что бы ждали и продолжали работу все одновременно после того как первый поток выполнит нужные действия.



  • @Andrey550 said in Как сделать задержку для всех потоков?:

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

    Еще одна глобалка, как будет выполнена все идут вперед. Пока нет спят.



  • This post is deleted!


  • @tet-vivi по первому кругу этот метот работает, по второму уже нет.. как решить? по второму кругу все потоки пришли и ничего...



  • @Andrey550 Глобальная переменная,та что вторая.Как первый поток сделал что надо меняет содержимое на true как остальные потоки стартанули меняем на false



  • @Andrey550 можно пример того что вы намутили?
    экстрасенсов тут нету, вроде.



  • @Andrey550 said in Как сделать задержку для всех потоков?:

    @tet-vivi по первому кругу этот метот работает, по второму уже нет.. как решить? по второму кругу все потоки пришли и ничего...

    После выполнения каждого круга нужно обнулять глобальную переменную (устанавливать ее в исходное состояние)


Log in to reply