internal static void Dispose() { if (provider != null) { lock (EtwTrace.syncRoot) { if (provider != null && !disposed) { ((IDisposable)provider).Dispose(); provider = null; disposed = true; } } } }