Observable.Interval производит значение каждый период времени. Как заставить его ждать, пока действие не закончится до следующей итерации?Observable.Interval Подождите, пока действие не будет выполнено.
Пример:
Observable.Interval(TimeSpan.FromSeconds(1)).Subscribe(async t =>
{
//Here could be some long running action with different duration each iteration
Console.WriteLine(t.ToString());
await Task.Delay(3000);
});
Он начнет Действие каждую секунду. Как заставить его ждать завершения действия?
На самом деле я хочу избежать использования методов while или recursive. –
Вы можете сделать что-то подобное, что знаете. Но без передачи временного интервала вы можете реализовать что-то, требующее действий, и то, что вы делаете, - это действие, сделать его задачей, и когда эта задача завершится, снова вызовите действие. Отметьте это сообщение: http://stackoverflow.com/questions/13695499/proper-way-to-implement-a-never-ending-task-timers-vs-task –