我正在实施一个取决于Cache
且具有属性
IScheduler
public bool IsValid
{
get { return scheduler.Now - lastUpdate < timeout; }
}
为了进行测试,我想使用TestScheduler
但它的RunTo
方法的行为与我预期的不同:
var scheduler = new TestScheduler();
scheduler.RunTo(100);
scheduler.Ticks.Should().Be(100); // Fails, actual value is 0
这是一个错误吗?
答案 0 :(得分:4)
TestScheduler将一直运行到最后一次计划的操作,而不是一直到RunTo时间。
所以使用示例:
var a = 1;
var scheduler = new TestScheduler();
scheduler.Schedule(() => a++, TimeSpan.FromTicks(50));
scheduler.RunTo(100);
scheduler.Ticks将等于50。
var a = 1;
var scheduler = new TestScheduler();
scheduler.Schedule(() => a++, TimeSpan.FromTicks(50));
scheduler.Schedule(() => a++, TimeSpan.FromTicks(70));
scheduler.RunTo(100);
scheduler.Ticks将等于70。
我认为这不会浪费周期处理时钟到RunTo,因为没有任何计划执行它。
答案 1 :(得分:2)
Wes confirms on Rx MSDN forum这是一个错误