Как использовать When(Func(Boolean)), TimeSpan)
							
							
						 
						
						
						
						
	
			Написал такой код, но он работает не так, как я ожидал.
Видимо это связано с тем, что я не понимаю сиснтаксис работы с правилами
Код
this.When(() => IsRuleActual(order), _waitingPeriod)
                .Do(() => ReplaceOrder(order))
                .Once()
                .Sync(syncRules);
 private bool IsRuleActual(Order order)
        {
            bool isRuleActual = (order.State == OrderStates.Active);
            WriteDiagnostics("IsRuleActual " + isRuleActual.ToString());
            return isRuleActual;
        }
 Я ожидал, что спустя указанный промежуток времени, будет вызван метод IsRuleActual, и если он вернет true, то будет вызван обработчик правила - ReplaceOrder. И ещё я ожидал, что метод IsRuleActual будет вызыватся один раз, но он вызывается каждые 30 секунд(в моём случае). 
Скажите пожалуйста, как с помощью When(Func<Boolean>), TimeSpan) создать правило, которое при верности условия, вызвыает метод и делает это один раз? и как синхронизировать это правило (т.к. я полагаю, что эта строка тоже не работает Sync(syncRules)) ?