EventLoopScheduler Bug?

时间:2012-03-30 07:03:25

标签: system.reactive

我想我在EventLoopScheduler中发现了一个错误。这是一个单元测试,可以重现它。

using System;
using System.Threading;
using NUnit.Framework;
using System.Reactive.Concurrency;

namespace EventLoopSchedulerTests {
    [TestFixture]
    public class EventLoopSchedulerTests {

    [Test]
    public void TestEventLoopScheduler() {
      var scheduler = new EventLoopScheduler();
      scheduler.Schedule(TimeSpan.FromMinutes(1), () => { });
      Thread.Sleep(1000);
      scheduler.Schedule(TimeSpan.FromMinutes(2), () => { });
      Thread.Sleep(1000*60);
    }
  }
}

如果你运行这个单元测试,一个核心将以100%运行一分钟。

我在代码中查看了Reflector并对其进行了分析,我认为问题是如果在“当前”之后安排第二个操作,则不会重置ManualResetEvent。

这是一个已知问题吗?有解决方法吗?我错过了什么吗?

1 个答案:

答案 0 :(得分:1)