public static void ShutDown(bool alreadyLocked, bool silent = false) { PhantomServer ps; using (alreadyLocked ? null : _instanceAsyncLock.Lock()) { if (_instance == null) { return; } ps = _instance; _instance = null; } ps.DisposeInternal(silent); GC.SuppressFinalize(ps); }