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

MaxLucky

Client
Регистрация
13.08.2017
Сообщения
186
Благодарностей
14
Баллы
18
Помогите пожалуйста найти решение задачи: Необходимо чтобы все потоки синхронизировались между друг другом каким-либо образом, и когда шаблон доходит до определенного действия(в моём случае нажатие на кнопку), он проверял не нажимается ли эта кнопка на каком-либо другом потоке. То есть необходима уникализация тайминга на каждом потоке, чтобы не было такого, что кнопка нажмётся на 2 и более потоков в 1 момент времени. И установить временные промежутки между самим этим действием.
 

inotoxic

Client
Регистрация
20.04.2015
Сообщения
354
Благодарностей
164
Баллы
43

MaxLucky

Client
Регистрация
13.08.2017
Сообщения
186
Благодарностей
14
Баллы
18
У Вас, что все потоки работают с одними и теми же данными ?
Причём здесь это? Да, можно поставить паузу рандомную, но это не исключает, что потоки придут к этому действию в одно и тоже время и выполнят действие.
 

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Благодарностей
3 552
Баллы
113
Как вариант: писать время последнего нажатия на кнопку в файл. И перед каждый последующим нажатием сверять, прошло ли столько-то секунд\минут.
 
  • Спасибо
Реакции: MaxLucky

MaxLucky

Client
Регистрация
13.08.2017
Сообщения
186
Благодарностей
14
Баллы
18
Как вариант: писать время последнего нажатия на кнопку в файл. И перед каждый последующим нажатием сверять, прошло ли столько-то секунд\минут.
Достойный вариант. Через Unix Time, правильно понимаю?
 

redman

Client
Регистрация
11.03.2016
Сообщения
554
Благодарностей
178
Баллы
43
Записывать в глобальную переменную, и перед нажатием проверять переменную.
 
  • Спасибо
Реакции: MaxLucky

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
все эти варианты по хорошему требуют лока. Но фишка в том, что в данной ситуации одного лока вполне достаточно. Главно юзать свой из общего кода, а не зенновский
 
  • Спасибо
Реакции: MaxLucky и one

MaxLucky

Client
Регистрация
13.08.2017
Сообщения
186
Благодарностей
14
Баллы
18
все эти варианты по хорошему требуют лока. Но фишка в том, что в данной ситуации одного лока вполне достаточно. Главно юзать свой из общего кода, а не зенновский
Так как не силён в C# сделал совмещая с кубиками. Тут есть минус, то что при работе с кубиками лок, если я правильно понимаю, не работает. Можете пожалуйста подсказать, как объединить все эти действия в 1 C# сниппет?
 

Вложения

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