提交 8fabe3c9 编写于 作者: J Jason Malinowski

Merge pull request #6156 from jasonmalinowski/remove-unnecessary-pumping-waits

Don't call PumpingWaitResult for the result of GetSyntaxTreeAsync
......@@ -33,7 +33,7 @@ internal override IEnumerable<ClassifiedSpan> GetClassificationSpans(string code
{
var document = workspace.CurrentSolution.GetDocument(workspace.Documents.First().Id);
var syntaxTree = document.GetSyntaxTreeAsync().PumpingWaitResult();
var syntaxTree = document.GetSyntaxTreeAsync().Result;
var service = document.GetLanguageService<IClassificationService>();
var classifiers = service.GetDefaultSyntaxClassifiers();
......
......@@ -21,7 +21,7 @@ internal override IEnumerable<ClassifiedSpan> GetClassificationSpans(string code
{
var snapshot = workspace.Documents.First().TextBuffer.CurrentSnapshot;
var document = workspace.CurrentSolution.Projects.First().Documents.First();
var tree = document.GetSyntaxTreeAsync().PumpingWaitResult();
var tree = document.GetSyntaxTreeAsync().Result;
var service = document.GetLanguageService<IClassificationService>();
var result = new List<ClassifiedSpan>();
......
......@@ -35,28 +35,6 @@ private static void CheckForStaDeadlockInPumpingWait(IEnumerable<Task> tasks)
}
}
public static async Task<bool> WhenAll(this IEnumerable<Task> tasks, TimeSpan timeout)
{
var delay = Task.Delay(timeout);
var list = tasks.Where(x => !x.IsCompleted).ToList();
list.Add(delay);
do
{
await Task.WhenAny(list).ConfigureAwait(true);
list.RemoveAll(x => x.IsCompleted);
if (list.Count == 0)
{
return true;
}
if (delay.IsCompleted)
{
return false;
}
} while (true);
}
public static void WaitForDispatchedOperationsToComplete(DispatcherPriority priority)
{
Action action = delegate { };
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册