ビューモデルが正しくファイナライズされていることを確認するために、アプリケーションに次のコードがあります。
#if DEBUG
static int openViewModels = 0;
protected AbstractViewModel()
{
openViewModels++;
}
~AbstractViewModel()
{
openViewModels--;
System.Diagnostics.Debug.WriteLine(openViewModels);
}
#endif
私のアプリケーションのすべてのビューモデルは、このクラスから派生しています。時間の経過とともにopenViewModels
増加することがわかりました。これは、一部のビューモデルがファイナライズに失敗していることを意味します。
これがなぜなのかを理解するのに苦労しています - コードをじっと見ましたが、一部のオブジェクトが残っている原因がわかりません。これらのオブジェクトのファイナライズを妨げている原因を突き止めるのに役立つツールや手順はありますか?