public async Task RefreshProjectGlyphs(List<IVsSccProject2> projects)
{
await ThreadHelper.JoinableTaskFactory.RunAsync(VsTaskRunContext.UIThreadBackgroundPriority,
async delegate
{
// On caller's thread. Switch to main thread (if we're not already there).
await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
// Now on UI thread via background priority.
await Task.Yield();
foreach (var project in projects)
{
if (project != null)
{
project.SccGlyphChanged(0, null, null, null);
}
await Task.Yield();
}
// Resumed on UI thread, also via background priority.
});
}