← Назад

Проверка условий события через равные промежутки времени до первого выполнения условия

Подскажите пожалуйста как задать событие, которое будет каждые 10 секунд проверять некое условие и при наступлении этого условия проверка прекратиться ? Я пытался сделать так

this
 .When(Rule1, TimeSpan.FromSeconds(10)) // будем проверять условие Rule1 с периодичностью 10 секунд
 .Do(Calculate)
 .Periodical(() => DateTime.Now.Hour - startTime.Hour == 1); // выполняем до тех пор, пока текущий час не закончится. Сюда нужно добавить условие на завершение, но какое ?

Заранее спасибо !

Комментарии (4)

Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий

Alexander
Alexander

Будет выполняться пока будет срабатывать условие в Periodical.

Trev
Trev Автор

Alexander Mukhanchikov: Будет выполняться пока будет срабатывать условие в Periodical. Хм, возможно я не правильно вопрос задал. Я хотел что бы проверка условия Rule1 происходила каждые 10 секунд до тех пор, пока условие Rule1 не выполнится или до тех пор пока не будет выполнено условие в Periodical.

Moadip
Moadip

Можно так


bool flag;

this
 .When(Rule1, TimeSpan.FromSeconds(10))
 .Do(Calculate)
 .Periodical(() => flag);

void Calculate()
{
  ...
  flag = true;
}

vader
vader

Подумайте, может стоит сделать так?


this.When(checkCondition, TimeSpan.FromSeconds(10))
                .Do(DoWork)

bool checkCondition()
{

}

Эта конструкция будет с интервалом в 10 сек проверять условие checkCondition и вызывать метод DoWork, пока checkCondition возвращает true.