0

イベント付きの VirtualDataCollection があります

VirtualDataCollection.ItemsLoading += VirtualDataCollectionOnItemsLoading;

ランダムな回数呼び出すことができるため、イベント内で購読を解除することはできません。そのインスタンスがGCによって収集されることを確認するにはどうすればよいですか? サブスクライブされていないイベントでのリークに関する記事をいくつか読みました(このような)。また、私の知る限り、設定するのは間違っています

VirtualDataCollection.ItemsLoading = null;

今のところ、私は使用しています

public void OnNavigatedFrom()
    {
        VirtualDataCollection.Clear();
        VirtualDataCollection = null;
        Cleanup();
    }

しかし、それはエノグウですか?

編集:うーん..実際には、追加することもできます

public void OnNavigatedFrom()
    {
        VirtualDataCollection.ItemsLoading -= VirtualDataCollectionOnItemsLoading;
        VirtualDataCollection.Clear();
        VirtualDataCollection = null;
        Cleanup();
    }
4

1 に答える 1

1

そのインスタンスがGCによって収集されることを確認するにはどうすればよいですか?

GC 側だけが心配で、パブリッシングインスタンスの収集に失敗している場合は、気にしないでください。イベント パブリッシャーからイベント ハンドラーへの参照はありますが、その逆はありません。

于 2013-08-16T14:35:12.760 に答える