棱镜容器解决线程安全问题

时间:2011-08-31 14:58:40

标签: thread-safety singleton prism

如果我想通过以前注册为singleton的Prism容器解析方法创建某种类型的实例,它是否是线程安全的?不幸的是我找不到任何关于此的信息。

1 个答案:

答案 0 :(得分:1)

这取决于您对线程安全的意思,并根据答案,您正在使用的ServiceLocator的实现。

MEF和Unity容器都是线程安全的,因为可以从相同类型的多个线程独立调用Resolve。理论上你可以有一些其他类型的ServiceLocator在这方面不是线程安全的,但我会惊讶地发现一个,因为它会使Prism应用程序中的线程同步成为一件真正的苦差事。

可能不是线程安全的是从容器返回的实际对象。例如,如果您注册了一个Dictionary对象并要求返回,那么ServiceLocator没有任何神奇之处可以使Dictionary的操作线程安全。