@Vituskosoy Спасибо. Я уже к счастью допер, оказывается все как всегда очевидно было. В начале делаю "прокрутка к элементу", чтоб он был на экране, потом "получить координаты элемента" и получаю нужны мне y относительно экрана, а прокрутку можно взять, не помню как там называется, во вкладке с браузером, где можно всю инфу узнать о расположении курсора, там и расположение курсора на экране, и то насколько прокрутка была. Беру эту прокрутку, складываю с координатами которые я получил и получаю ту самую заветную y координату
Помогите с логикой: выполнение функции любым, но только одним потоком
-
Всем привет!
Ломаю голову над одной задачкой. Как оптимальнее всего продумать логику, чтобы при многопотоке каждая функция выполнялась любым потоком, но только одним?
Допустим, есть у нас в Main вызов 123 функций и скрипт работает в 17 потоков (цифры сугубо для примера). Как сделать так, чтобы в каждую функцию мог зайти только один поток, но без привязки к его индексу?
Думал уже про какие-то флаги в глобальных переменных, но так этот пазл в голове и не сложился.
Был бы признателен за любые советы!
-
@UA делаем глобальную переменную с значением 0, потом условие если эта переменная == 0 - вызов функции, на страте функции сразу увеличиваем переменную. Желательно что бы при этом потоки запускались с паузой между друг другом.
ПС. на каждую функцию своя переменная -
@gaget007, так я хотел делать изначально, но это совсем не универсально. Поэтому и решил искать вариант без привязки к индексам (номерам потоков).
@DrPrime, вот о чём-то таком как раз и думал, но здесь отталкивает необходимость плодить кучу переменных и есть риск, что всё равно в функцию зайдёт больше потоков, чем один.
Эх, видимо, простого решения здесь не придумать :)
В любом случае, спасибо за ответы!
-
-
@UA У меня в скрипте реализовано так. If
[[THREAD_INDEX]] == 1, а в нём уже функции которые через глобальные переменные управляют всем скриптом. Например первый поток читает reboot.txt (или get-запрос в админку), если в нём не 0, то установить глобальную переменную GLOBAL_REBOOT значением взятым из файла. А остальные потоки периодически проверяют значение GLOBAL_REBOOT, и если[[GLOBAL_REBOOT]] == [[THREAD_INDEX]], то завершить поток.
И всё в том же духе, у меня всё управление скриптом завязано на первом потоке.
-
Помогите пожалуйста
Moved Поддержка -
-
-
-