Пример #1
0
 private void InvalidateImportCache(Guid deps, HashSet <Guid> visited)
 {
     myShellLocks.IsWriteAccessAllowed();
     visited.Add(deps);
     myCache.RemoveFromCache(deps);
     foreach (var d in myDependencies.GetValuesSafe(deps))
     {
         if (!visited.Contains(d))
         {
             InvalidateImportCache(d, visited);
         }
     }
 }
Пример #2
0
        private void OnDataFileChanged(Pair <IPsiSourceFile, T4FileDataDiff> pair)
        {
            if (pair.First != SourceFile)
            {
                return;
            }

            if (_shellLocks.IsWriteAccessAllowed())
            {
                OnDataFileChanged(pair.Second);
            }
            else
            {
                _shellLocks.ExecuteOrQueue(_lifetime, "T4PsiModuleOnFileDataChanged",
                                           () => _shellLocks.ExecuteWithWriteLock(() => OnDataFileChanged(pair.Second)));
            }
        }