Добрый вечер. Подскажите пожалуйста, как выполнить определенные действия в ZennoPoster, в многопотоке всего 1 раз?
Пример: Мне нужно отправить запрос на сайт и получить оттуда нужное значение (Которое меняется раз в сутки). После него уже подставлять это самое значение во все остальные потоки.
Если брать другой софт - там это все реализовать очень просто.
Сначала ты вызываешь 1 функцию, устанавливаешь глобальную переменную и уже после - вызываешь функцию в многопотоке.
Тут вроде тоже есть проект в проекте, ну к сожалению нет реализации вызова проекта в 500 потоков к примеру.
Я понимаю что данное решение можно сделать через глобальные переменные, ну вот почему то не понимаю как правильно это реализовать.
В идеале было бы сделать так, брать bool значение с входных настроек "Проверять значение или нет" и уже после - 1 раз выполнить запрос, записать в глобальную и после - проверять ее существование.
Но я столкнулся с проблемой. Глобальная переменная не меняется если в ней уже есть запись. Для того чтоб она поменялась, нужно перезапускать весь ZennoPoster. А как правильно реализовать логику, я просто не ПОНИМАЮ!
Есть костыль, ну мне бы хотелось более четкого решения.
Пример костыля следующий.
В начальных настройках создаем переменную - сколько всего раз отправлять запрос на проверку нужного значения.
Далее все это обворачиваем в lock(SyncObjects), записываем счетчик в глобальную переменную и если счетчик глобальной не больше переменной из входных настроек, тогда отправляем запрос и инкрементируем глобалку.
После этого наша глобалка уже будет >= 1, в таком случае запрос не отправиться....
Может есть вариант получше? Почему все так должно быть через такую ж**у?
Пример: Мне нужно отправить запрос на сайт и получить оттуда нужное значение (Которое меняется раз в сутки). После него уже подставлять это самое значение во все остальные потоки.
Если брать другой софт - там это все реализовать очень просто.
Сначала ты вызываешь 1 функцию, устанавливаешь глобальную переменную и уже после - вызываешь функцию в многопотоке.
Тут вроде тоже есть проект в проекте, ну к сожалению нет реализации вызова проекта в 500 потоков к примеру.
Я понимаю что данное решение можно сделать через глобальные переменные, ну вот почему то не понимаю как правильно это реализовать.
В идеале было бы сделать так, брать bool значение с входных настроек "Проверять значение или нет" и уже после - 1 раз выполнить запрос, записать в глобальную и после - проверять ее существование.
Но я столкнулся с проблемой. Глобальная переменная не меняется если в ней уже есть запись. Для того чтоб она поменялась, нужно перезапускать весь ZennoPoster. А как правильно реализовать логику, я просто не ПОНИМАЮ!
Есть костыль, ну мне бы хотелось более четкого решения.
Пример костыля следующий.
В начальных настройках создаем переменную - сколько всего раз отправлять запрос на проверку нужного значения.
Далее все это обворачиваем в lock(SyncObjects), записываем счетчик в глобальную переменную и если счетчик глобальной не больше переменной из входных настроек, тогда отправляем запрос и инкрементируем глобалку.
После этого наша глобалка уже будет >= 1, в таком случае запрос не отправиться....
Может есть вариант получше? Почему все так должно быть через такую ж**у?
Последнее редактирование модератором: