private void Dispose(bool disposing) { if (!disposed) { Debug.Assert(sharedPtr.IsValid() && sharedPtr.ReferenceController != IntPtr.Zero); sharedPtr.ReleaseSharedReference(ESPMode.ThreadSafe); disposed = true; } }