2016-06-21 8 views
-2

私は、イベントログにエラーを書いていますが、私は漏れをチェックするとき、私は、.NETプロファイラでのイベントログの漏れを持って、私はこのオブジェクトを配置する必要がありますか?それはマルチスレッドで問題を作りますか?イベントログ漏洩問題(.NETプロファイラはundisposed示し)

public override void ProcessWarning(string title, string message) 
{ 
    if (title == null) 
     eventLog.WriteEntry(message, EventLogEntryType.Warning); 
    else 
     eventLog.WriteEntry(title + '\n' + message, EventLogEntryType.Warning); 
    } 
} 
+0

ポスト*関連*コード。どこで 'eventLog'を定義しますか?どこで初期化するのですか?それを親クラスのDisposeメソッドで処理しないのはなぜですか? –

答えて

0

EventLogクラスは、IDisposableを実装することを示している、Componentを拡張します。そう、はい、あなたは(最終的に)Dispose()する必要があります。

どうやらあなたeventLogは、あなたのクラスのフィールドです。これ(IDisposableフィールド)は、クラスがIDisposable自体を実装する必要があることを意味します。独自のDisposeメソッドでは、それを処分する必要がありますeventLog

もちろん、これは何でもを使用してを使用していることを意味します。このクラスでは、現在のIDisposableとして扱わなければなりません。

関連する問題