public void RefreshSchemaConnection(String upn, String passwd) { IList <ServerEntry> serverEntries = baseEntryFetcher.GetServerEntries(); entryFetchers.Clear(); Mutex mutex = new Mutex(); Parallel.ForEach(serverEntries, (e) => { if (String.Compare(baseServerName, e.serverName) != 0) { IEntryFetcher entryFetcher = entryFetcherFactory.CreateEntryFetcher( e.serverName, upn, passwd); mutex.WaitOne(); entryFetchers.Add(e.serverName, entryFetcher); mutex.ReleaseMutex(); } }); }