Существует код:Задержка при условии
someObservable.Select(x => getY(x));
Y getY(X x)
{
if (x.Value == X.ABC)
return new Y(1);
else
return new Y(2);
}
На каком-то состоянии, мне нужно перепроверить x.Value после некоторого периода времени. Самое простое и плохое решение использовать Thread.Sleep:
Y getY(X x)
{
if (x.Value == X.ABC)
return new Y(1);
else
if (x.SomethingElse == true)
{
Thread.Sleep(timeout);
if (x.Value == X.ABC)
return new Y(1);
else
return new Y(2);
}
}
Что такое правильный код здесь? Мне нужно, чтобы события были заказаны так же, как и я. Это означает, что если у меня есть задержка, и я получаю новое значение, которое он должен ждать, чтобы обработать.
Спасибо. Единственная проблема, которая мне нужна для сохранения порядка. Я получил некоторое предложение для решения ниже. Что ты думаешь об этом ? –
@NN_ да, ваше предлагаемое решение должно сохранить порядок. Я думаю, вы могли бы сделать его более эффективным. – Asti
@NN_ См. Отредактированное решение. – Asti