The export providers like:
We know that even if we specify "true" - above classes won't be thread-safe for operations that causes recomposition (e.g. executing composition or exports change in the uderlying catalog).
Does it still means that if we provide synchronization for operations causing recompositon - other operations will be guaranteed to be thread safe? (assuming isThreadSafe=true)
Other words:
- CompositionContainer
- ComposablePartExportProvider
-
CatalogExportProvider
We know that even if we specify "true" - above classes won't be thread-safe for operations that causes recomposition (e.g. executing composition or exports change in the uderlying catalog).
Does it still means that if we provide synchronization for operations causing recompositon - other operations will be guaranteed to be thread safe? (assuming isThreadSafe=true)
Other words:
- we set isThreadSafe=true
- we put lock on operations causing recomposition (so that Compose(...), Catalogs.Add(...) are synchronized)
-
we do not synchronize GetExports operations or access to the exported objects via Lazy<> imports