MSDN dice que los miembros públicos y estáticos de System.Windows.Application son seguros para la ejecución de subprocesos. Pero cuando trato de ejecutar mi aplicación con múltiples hilos que recibo la siguiente excepción:Errores de subprocesamiento con Application.LoadComponent (la clave ya existe)
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)
La excepción se produce en la siguiente llamada:
genericResources = (ResourceDictionary)Application.LoadComponent(new Uri("/Themes/Generic.xaml", UriKind.Relative));
La aplicación funciona bien en un solo hilo e incluso en dos o tres. Cuando me levanto después de 5, obtengo el error cada vez. ¿Estoy haciendo algo mal? ¿Qué puedo hacer para arreglar esto?
Agregado el tag # C .. . Debería llamarte más la atención. – Kiril
Qué bueno. No parece estar arreglado en .NET 4.5. Creado un problema de conexión en https://connect.microsoft.com/VisualStudio/feedback/details/758055/application-loadcomponent-is-not-thread-safe. –