public void Dispose() { if (!_disposed) { _disposed = true; NuGetUIThreadHelper.JoinableTaskFactory.Run(async() => { await NuGetUIThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); if (_vsMonitorSelection != null && _selectionEventsCookie != 0) { _vsMonitorSelection.UnadviseSelectionEvents(_selectionEventsCookie); _selectionEventsCookie = 0; } if (_vsSolution != null && _solutionEventsCookie != 0) { _vsSolution.UnadviseSolutionEvents(_solutionEventsCookie); _solutionEventsCookie = 0; } }); _semaphoreLock?.Dispose(); } }
public void Dispose() { NuGetUIThreadHelper.JoinableTaskFactory.RunAsync(async() => { await _semaphore.ExecuteAsync(async() => { await NuGetUIThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); ErrorListTableDataSource.Value.Dispose(); }); _semaphore.Dispose(); } ).FileAndForget(TelemetryUtility.CreateFileAndForgetEventName(nameof(OutputConsoleLogger), nameof(Dispose))); }
public void Dispose() { NuGetUIThreadHelper.JoinableTaskFactory.RunAsync(async() => { await _semaphore.ExecuteAsync(async() => { await NuGetUIThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); _errorList.Value.Dispose(); }); _semaphore.Dispose(); } ).PostOnFailure(nameof(OutputConsoleLogger), nameof(Dispose)); }
public void Dispose() { if (!_disposed) { _disposed = true; if (ThreadHelper.JoinableTaskContext?.IsOnMainThread == true) { if (_vsMonitorSelection != null && _selectionEventsCookie != 0) { _vsMonitorSelection.UnadviseSelectionEvents(_selectionEventsCookie); _selectionEventsCookie = 0; } if (_vsSolution != null && _solutionEventsCookie != 0) { _vsSolution.UnadviseSolutionEvents(_solutionEventsCookie); _solutionEventsCookie = 0; } } _semaphoreLock?.Dispose(); } }
protected sealed override async Task DisposeCoreAsync(bool initialized) { await _semaphore.ExecuteAsync(() => DisposeCoreUnderLockAsync(initialized)); _semaphore.Dispose(); }