internal async Task Refresh(List <GitFile> files)
{
var updatedFiles = files;
if (!_refreshing)
{
if (_showOnlySolutionFiles)
{
var filteredFiles = new List <GitFile>();
foreach (var gitFile in files)
{
if (service.FileTracked(gitFile.FilePath))
{
filteredFiles.Add(gitFile);
}
}
updatedFiles = filteredFiles;
}
_refreshing = true;
await ThreadHelper.JoinableTaskFactory.RunAsync(
VsTaskRunContext.UIThreadBackgroundPriority,
async delegate
{
await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
await Task.Yield();
await RefreshInternal(updatedFiles);
});
_refreshing = false;
}
}