Отдельное задание для определенного потока

SteveJobs

Client
Регистрация
03.11.2016
Сообщения
283
Благодарностей
30
Баллы
28
Допустим: есть 100 потоков, как сделать чтоб раз в час приходило сообщение в telegram, но чтоб из 100 потоков сделал это только один
 

SteveJobs

Client
Регистрация
03.11.2016
Сообщения
283
Благодарностей
30
Баллы
28
Ни у кого нет решения?
 

Deniska

Client
Регистрация
20.07.2016
Сообщения
82
Благодарностей
5
Баллы
8
Определить как часто запускаются потоки
Приоритет запуска телеграмма максимальный
 

SteveJobs

Client
Регистрация
03.11.2016
Сообщения
283
Благодарностей
30
Баллы
28
Определить как часто запускаются потоки
Приоритет запуска телеграмма максимальный
Бесконечный цикл, просто раз в час нужно выводить сообщение в телеграмм , вне зависимости от кол-ва потоков
 

one

Client
Регистрация
22.09.2015
Сообщения
6 796
Благодарностей
1 264
Баллы
113
Сделать в шаблоне проверку на сигнал после запускать внешний шаблон который будет отсылать в телеграм информацию.
 

Meteorburn

Client
Регистрация
23.05.2016
Сообщения
1 452
Благодарностей
565
Баллы
113
Бесконечный цикл, просто раз в час нужно выводить сообщение в телеграмм , вне зависимости от кол-ва потоков
Через глобальные переменные.
Прошёл час, вывели оповещение, изменили значение глоб. переменной на "1", другие потоки проверяют какое значение, если "1", то пропускают действие.
Затем идёт проверка сколько времени прошло после вывода оповещения, если меньше часа, оставляем значение - "1" потоки не могут получить доступ к функции вывода оповещения, если больше часа, то сбрасываем глобальную переменную на "0".
Любой из потоков, который первый доберётся до проверки глобальной переменной выведет оповещение и изменит глобальную переменную снова на "1" и другие потоки снова не смогут получить доступ к оповещению.
 
  • Спасибо
Реакции: SteveJobs и dio-dev

SteveJobs

Client
Регистрация
03.11.2016
Сообщения
283
Благодарностей
30
Баллы
28
Через глобальные переменные.
Прошёл час, вывели оповещение, изменили значение глоб. переменной на "1", другие потоки проверяют какое значение, если "1", то пропускают действие.
Затем идёт проверка сколько времени прошло после вывода оповещения, если меньше часа, оставляем значение - "1" потоки не могут получить доступ к функции вывода оповещения, если больше часа, то сбрасываем глобальную переменную на "0".
Любой из потоков, который первый доберётся до проверки глобальной переменной выведет оповещение и изменит глобальную переменную снова на "1" и другие потоки снова не смогут получить доступ к оповещению.
Да я примерно так и делал, только мне кажется что потоки одновременно доходят до момента, где отправляется сообщение в телеграмм, а точнее кто-то успевает проскочить if блок пока значение "1" не поставили. Хотя всё равно спасибо большое за совет, попробую со значениями "1" и "0"
 

Meteorburn

Client
Регистрация
23.05.2016
Сообщения
1 452
Благодарностей
565
Баллы
113
Да я примерно так и делал, только мне кажется что потоки одновременно доходят до момента, где отправляется сообщение в телеграмм, а точнее кто-то успевает проскочить if блок пока значение "1" не поставили. Хотя всё равно спасибо большое за совет, попробую со значениями "1" и "0"
Ставьте блок на глобальные переменные. У меня такая логика в шаблонах и ок работает.
 

SteveJobs

Client
Регистрация
03.11.2016
Сообщения
283
Благодарностей
30
Баллы
28

Meteorburn

Client
Регистрация
23.05.2016
Сообщения
1 452
Благодарностей
565
Баллы
113
lock(SyncObject)
{
// тут код отвечающий за инициализацию или присвоения значений глоб. переменным.
}
Если у вас на кубиках, то найдите на форуме, как это сделать на коде. Там просто.
 
  • Спасибо
Реакции: SteveJobs

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)