public async Task ReleaseProjectContextAsync(IWorkspaceProjectContext context)
        {
            Requires.NotNull(context, nameof(context));

            lock (_contexts)
            {
                if (!_contexts.Remove(context))
                {
                    throw new ArgumentException("Specified context was not created by this instance, or has already been unregistered.");
                }
            }

            // TODO: https://github.com/dotnet/roslyn-project-system/issues/353
            await _commonServices.ThreadingService.SwitchToUIThread();

            context.Dispose();
        }
Beispiel #2
0
        public async Task ReleaseProjectContextAsync(IWorkspaceProjectContext projectContext)
        {
            Requires.NotNull(projectContext, nameof(projectContext));

            _activeWorkspaceProjectContextTracker.UnregisterContext(projectContext);

            // TODO: https://github.com/dotnet/project-system/issues/353.
            await _threadingService.SwitchToUIThread();

            try
            {
                projectContext.Dispose();
            }
            catch (Exception ex) when(_telemetryService.PostFault(TelemetryEventName.LanguageServiceInitFault, ex))
            {
            }
        }
Beispiel #3
0
 public void Dispose()
 => _vsProjectContext.Dispose();