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

  • Автор темы Автор темы MaxLucky
  • Дата начала Дата начала

MaxLucky

Client
Регистрация
13.08.2017
Сообщения
239
Реакции
18
Баллы
18
Помогите пожалуйста найти решение задачи: Необходимо чтобы все потоки синхронизировались между друг другом каким-либо образом, и когда шаблон доходит до определенного действия(в моём случае нажатие на кнопку), он проверял не нажимается ли эта кнопка на каком-либо другом потоке. То есть необходима уникализация тайминга на каждом потоке, чтобы не было такого, что кнопка нажмётся на 2 и более потоков в 1 момент времени. И установить временные промежутки между самим этим действием.
 
У Вас, что все потоки работают с одними и теми же данными ?
Причём здесь это? Да, можно поставить паузу рандомную, но это не исключает, что потоки придут к этому действию в одно и тоже время и выполнят действие.
 
Как вариант: писать время последнего нажатия на кнопку в файл. И перед каждый последующим нажатием сверять, прошло ли столько-то секунд\минут.
 
  • Оценить
Реакции: MaxLucky
Как вариант: писать время последнего нажатия на кнопку в файл. И перед каждый последующим нажатием сверять, прошло ли столько-то секунд\минут.
Достойный вариант. Через Unix Time, правильно понимаю?
 
Записывать в глобальную переменную, и перед нажатием проверять переменную.
 
  • Оценить
Реакции: MaxLucky
все эти варианты по хорошему требуют лока. Но фишка в том, что в данной ситуации одного лока вполне достаточно. Главно юзать свой из общего кода, а не зенновский
 
  • Оценить
Реакции: MaxLucky и one
все эти варианты по хорошему требуют лока. Но фишка в том, что в данной ситуации одного лока вполне достаточно. Главно юзать свой из общего кода, а не зенновский
Так как не силён в C# сделал совмещая с кубиками. Тут есть минус, то что при работе с кубиками лок, если я правильно понимаю, не работает. Можете пожалуйста подсказать, как объединить все эти действия в 1 C# сниппет?
 

Вложения

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