2016-06-21 8 views
-2

Ich schreibe Fehler in Ereignisprotokoll, aber wenn ich auf Leckage überprüft habe ich Ereignisprotokoll Leck in .net Profiler, muss ich dieses Objekt entsorgen? Wird es Probleme beim Multithreading geben?Ereignisprotokoll Leckage (NET-Profiler zeigt dispositioniert)

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

Geben Sie den * relevanten * Code ein. Wo definierst du 'eventLog', wo initialisierst du es und warum disponierst du es nicht in der Dispose-Methode der Elternklasse? –

Antwort

0

Die EventLog Klasse erweitert Component, was zeigt, dass es IDisposable implementiert. Also ja, du wirst (schließlich) es entsorgen müssen.

Anscheinend ist Ihr eventLog ein Feld in Ihrer Klasse. Dies (ein IDisposable-Feld) bedeutet, dass Ihre Klasse IDisposable selbst implementieren muss. In Ihrer eigenen Dispose-Methode müssen Sie dann diese eventLog entsorgen.

Und natürlich bedeutet dies, dass alles mit diese Klasse muss es als die IDisposable behandeln, die es jetzt ist.

Verwandte Themen