Beispiel #1
0
        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();
            }
        }
Beispiel #2
0
        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)));
        }
Beispiel #3
0
        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));
        }
Beispiel #4
0
        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();
        }