diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/PackageRepositoryCache.cs b/src/AddIns/Misc/PackageManagement/Project/Src/PackageRepositoryCache.cs index 3d33e894d9..2e879bdcbb 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/PackageRepositoryCache.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/PackageRepositoryCache.cs @@ -2,6 +2,7 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; +using System.Collections.Concurrent; using System.Collections.Generic; using NuGet; @@ -13,8 +14,8 @@ namespace ICSharpCode.PackageManagement RegisteredPackageSources registeredPackageSources; IList recentPackages; IRecentPackageRepository recentPackageRepository; - Dictionary repositories = - new Dictionary(); + ConcurrentDictionary repositories = + new ConcurrentDictionary(); public PackageRepositoryCache( ISharpDevelopPackageRepositoryFactory factory, @@ -57,7 +58,7 @@ namespace ICSharpCode.PackageManagement IPackageRepository CreateNewCachedRepository(PackageSource packageSource) { IPackageRepository repository = factory.CreateRepository(packageSource); - repositories.Add(packageSource, repository); + repositories.TryAdd(packageSource, repository); return repository; }