private void AddPendingDocumentInitializationTask(IVisualStudioHostDocument document, Task task, CancellationTokenSource cts) { var taskAndTokenSource = new TaskAndTokenSource() { Task = task, CancellationTokenSource = cts }; lock (_gate) { // Add taskAndTokenSource to the pending document initialization tasks. // Check for cancellation before adding as the task might already have been completed/cancelled/faulted before we reached here. if (!cts.IsCancellationRequested && !task.IsCompleted) { _pendingDocumentInitializationTasks.Add(document.Id, taskAndTokenSource); } } }