例外をスローせず.Dispose
に同じインスタンスを複数回呼び出すことは可能ですか? IDisposable
これには何らかの定義がありますか?
例えば:
public class Test : IDisposable
{
public void Dispose()
{
// What ever
}
}
var t = Test();
t.Dispose();
t.Dispose(); // Should this work in any case?
私がこれを求めている理由:
VisualTree
から継承する for 要素を検索するメカニズムをいくつか作成しましたIDisposable
が、これらの要素のいずれかが前に破棄されるかどうかはわかりません。
ウィンドウクラスから切り出されたいくつかのコード
/// <summary>
/// Dispose
/// </summary>
public void DisposeAll()
{
foreach (var obj in WPFVisualTreeHelper.FindChildren<IDisposable>(this))
{
if (!disposables.Contains(obj))
{
disposables.Add(obj);
}
}
foreach (IDisposable disposable in disposables)
{
disposable.Dispose();
}
}
ありがとうございました!