protected override void DisposeManaged() { Debugger.Dispose(); if (VsDebugger != null) { VsDebugger.UnadviseDebugEventCallback(this as IDebugEventCallback2); } lock (criticalSectionGlobal) { runningPrograms--; if (runningPrograms == 0) { BreakAllProcesses = originalBreakAllProcesses; } } }
protected override void DisposeManaged() { Debugger.Dispose(); if (VsDebugger != null) { ThreadHelper.JoinableTaskFactory.Run(async() => { await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); VsDebugger.UnadviseDebugEventCallback(this as IDebugEventCallback2); }); } lock (criticalSectionGlobal) { runningPrograms--; if (runningPrograms == 0) { BreakAllProcesses = originalBreakAllProcesses; } } }