事件日志泄漏问题(.net 分析器显示未处理)

Eventlog leakage issue(.net profiler shows undisposed)

我正在向事件日志写入错误,但是当我检查泄漏时,我在 .net 探查器中发现了事件日志泄漏,我需要处理这个对象吗?它会在多线程中产生任何问题吗?

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

EventLog class extends Component,说明它实现了IDisposable。所以是的,您将需要(最终)对其进行 Dispose()。

显然您的 eventLog 是您 class 中的一个字段。这(一个 IDisposable 字段)意味着您的 class 需要自己实现 IDisposable。在您自己的 Dispose 方法中,您需要处理 eventLog.

当然,这意味着 使用 这个 class 的任何东西都必须将其视为现在的 IDisposable。