GitScc.SccProviderService.RefreshSolutionGlyphs C# (CSharp) Method

RefreshSolutionGlyphs() private method

private RefreshSolutionGlyphs ( ) : System.Threading.Tasks.Task
return System.Threading.Tasks.Task
        private async Task RefreshSolutionGlyphs()
        {
            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();
                    string[] rgpszFullPaths = new string[1];
                    rgpszFullPaths[0] = await GetSolutionFileName();
                    VsStateIcon[] rgsiGlyphs = new VsStateIcon[1];
                    uint[] rgdwSccStatus = new uint[1];
                    GetSccGlyph(1, rgpszFullPaths, rgsiGlyphs, rgdwSccStatus);

                    // Set the solution's glyph directly in the hierarchy
                    IVsHierarchy solHier = (IVsHierarchy)_sccProvider.GetService(typeof(SVsSolution));
                    solHier.SetProperty(VSConstants.VSITEMID_ROOT, (int)__VSHPROPID.VSHPROPID_StateIconIndex, rgsiGlyphs[0]);
                });
         
        }
SccProviderService