Реализация паузы относительно всех потоков

MaxLucky

Client
Joined
Aug 13, 2017
Messages
239
Reaction score
18
Points
18
Помогите пожалуйста найти решение задачи: Необходимо чтобы все потоки синхронизировались между друг другом каким-либо образом, и когда шаблон доходит до определенного действия(в моём случае нажатие на кнопку), он проверял не нажимается ли эта кнопка на каком-либо другом потоке. То есть необходима уникализация тайминга на каждом потоке, чтобы не было такого, что кнопка нажмётся на 2 и более потоков в 1 момент времени. И установить временные промежутки между самим этим действием.
 

inotoxic

Client
Joined
Apr 20, 2015
Messages
354
Reaction score
164
Points
43
он проверял не нажимается ли эта кнопка на каком-либо другом потоке
У Вас, что все потоки работают с одними и теми же данными ?
 

MaxLucky

Client
Joined
Aug 13, 2017
Messages
239
Reaction score
18
Points
18
У Вас, что все потоки работают с одними и теми же данными ?
Причём здесь это? Да, можно поставить паузу рандомную, но это не исключает, что потоки придут к этому действию в одно и тоже время и выполнят действие.
 

ibred

Client
Joined
Apr 4, 2015
Messages
3,835
Reaction score
3,564
Points
113
Как вариант: писать время последнего нажатия на кнопку в файл. И перед каждый последующим нажатием сверять, прошло ли столько-то секунд\минут.
 
  • Thank you
Reactions: MaxLucky

MaxLucky

Client
Joined
Aug 13, 2017
Messages
239
Reaction score
18
Points
18
Как вариант: писать время последнего нажатия на кнопку в файл. И перед каждый последующим нажатием сверять, прошло ли столько-то секунд\минут.
Достойный вариант. Через Unix Time, правильно понимаю?
 

redman

Client
Joined
Mar 11, 2016
Messages
554
Reaction score
178
Points
43
Записывать в глобальную переменную, и перед нажатием проверять переменную.
 
  • Thank you
Reactions: MaxLucky

doc

Client
Joined
Mar 30, 2012
Messages
8,685
Reaction score
4,652
Points
113
все эти варианты по хорошему требуют лока. Но фишка в том, что в данной ситуации одного лока вполне достаточно. Главно юзать свой из общего кода, а не зенновский
 
  • Thank you
Reactions: MaxLucky and one

MaxLucky

Client
Joined
Aug 13, 2017
Messages
239
Reaction score
18
Points
18
все эти варианты по хорошему требуют лока. Но фишка в том, что в данной ситуации одного лока вполне достаточно. Главно юзать свой из общего кода, а не зенновский
Так как не силён в C# сделал совмещая с кубиками. Тут есть минус, то что при работе с кубиками лок, если я правильно понимаю, не работает. Можете пожалуйста подсказать, как объединить все эти действия в 1 C# сниппет?
 

Attachments

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)