MSDN говорит, что публичные статические члены System.Windows.Application являются потокобезопасными. Но когда я пытаюсь запустить мое приложение с несколькими потоками, я получаю следующее исключение:
ArgumentException: An entry with the same key already exists.
at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
at System.Collections.Generic.SortedList`2.Add(TKey key, TValue value)
at System.IO.Packaging.Package.AddIfNoPrefixCollisionDetected(ValidatedPartUri partUri,
PackagePart part)
at System.IO.Packaging.Package.GetPartHelper(Uri partUri)
at System.IO.Packaging.Package.GetPart(Uri partUri)
at System.Windows.Application.GetResourceOrContentPart(Uri uri)
at System.Windows.Application.LoadComponent(Uri resourceLocator, Boolean
bSkipJournaledProperties)
at System.Windows.Application.LoadComponent(Uri resourceLocator)
Исключение происходит при следующем вызове:
genericResources = (ResourceDictionary)Application.LoadComponent(new Uri("/Themes/Generic.xaml", UriKind.Relative));
Приложение отлично работает на одном потоке и даже на два или три. Когда я встаю через 5, я получаю ошибку каждый раз. Я делаю что-то неправильно? Что я могу сделать, чтобы исправить это?