internal void RecordBlockingExtension(object extension) { if (extension == null) { return; } string extensionName; switch (extension) { case IAsyncCompletionSource source: extensionName = CompletionTelemetryHost.GetSourceName(source); break; case IAsyncCompletionItemManager itemManager: extensionName = CompletionTelemetryHost.GetItemManagerName(itemManager); break; case IAsyncCompletionCommitManager commitManager: extensionName = CompletionTelemetryHost.GetCommitManagerName(commitManager); break; default: extensionName = extension.GetType().ToString(); break; } if (!BlockingExtensionCounter.ContainsKey(extensionName)) { BlockingExtensionCounter[extensionName] = 0; } BlockingExtensionCounter[extensionName]++; }
internal void Save( IAsyncCompletionItemManager itemManager, ICompletionPresenterProvider presenterProvider, CompletionSessionState state) { ItemManagerName = CompletionTelemetryHost.GetItemManagerName(itemManager); PresenterProviderName = CompletionTelemetryHost.GetPresenterProviderName(presenterProvider); CompletionState = state; _telemetryHost.Add(this); }
internal void Save( IAsyncCompletionItemManager itemManager, ICompletionPresenterProvider presenterProvider, CompletionSessionState state) { ItemManagerName = CompletionTelemetryHost.GetItemManagerName(itemManager); PresenterProviderName = CompletionTelemetryHost.GetPresenterProviderName(presenterProvider); CompletionState = state; if (NoChanges && BlockingComputationDuration > 0) { UserWaitedForNoChanges = true; } _telemetryHost.Add(this); }