最近我注意到我的代碼中使用Reactive Extensions的一個小錯誤。我訂閱了Timer,但我從未處理過訂閱。這導致內存泄漏。Can Observable.Timer()會導致內存泄漏嗎?
我創建片斷這凸顯了這種危險:
while (true)
{
Observable.Timer(TimeSpan.Zero, TimeSpan.FromMinutes(1)).Subscribe(Console.WriteLine);
}
這是正常的行爲呢?
不應該調度程序持有對定時器的弱引用,以便在訂戶與應用程序的其餘部分失去連接時獲取垃圾回收?
該代碼是一個簡化的示例代碼,使問題更加明顯。我認爲作者知道你寫的是什麼。 – 2015-07-03 11:11:28