public static void Lock(this ConditionModerator condition, IMessageCommunication bus, TimeSpan timeout) { var token = _tasks[condition.Name].Token; Task.Run(() => { condition.Locked = true; Task.Delay(timeout, token); if (!token.IsCancellationRequested) { bus.Handle <ModeratorTimeoutOperation>(); } condition.Locked = false; }, token); }
public static bool IsLock(this ConditionModerator condition) { return(condition.Locked); }
public static void UnLock(this ConditionModerator condition) { _tasks[condition.Name].Cancel(); }