2012-03-30 3 views
1

EventLoopSchedulerにバグが見つかりました。これを再現する単体テストです。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); 
    } 
    } 
} 

このユニットテストを実行すると、1つのコアが100%で1分間実行されます。

Reflectorをコードで調べて分析したところ、「現在の」アクションの後に2番目のアクションがスケジュールされていると、ManualResetEventがリセットされないという問題があると思います。

これは既知の問題ですか?回避策はありますか?何か不足していますか?

答えて