S#

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


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


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

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

Теги:


Спасибо:




4 Ответов
Alexander

Фотография
Дата: 20.03.2012
Ответить


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

Trev

Фотография
Дата: 20.03.2012
Ответить


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

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

Moadip

Фотография
Автор статей Программист
Дата: 20.03.2012
Ответить


Можно так

Код

bool flag;

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

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


Спасибо:

vader

Фотография
Дата: 21.03.2012
Ответить


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

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

bool checkCondition()
{

}

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


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy