C# CreateChildContainer()是否线程安全?
回到2009年,可能是Unity 2.0之前的版本,我看到一个提示CreateChildContainer()不是线程安全的: 此外,如果您使用CreateChildContainer()方法创建子容器,则它们将在创建期间将自身添加到其父容器的Live Time容器中,并在处置时将其删除。因此,从单独的线程处理子容器可能会导致错误,即使每个子容器一次只能由一个线程访问 Unity 2.0真的(仍然)是这样吗?Unity 3.0或更高版本怎么样C# CreateChildContainer()是否线程安全?,c#,.net,dependency-injection,unity-container,C#,.net,Dependency Injection,Unity Container,回到2009年,可能是Unity 2.0之前的版本,我看到一个提示CreateChildContainer()不是线程安全的: 此外,如果您使用CreateChildContainer()方法创建子容器,则它们将在创建期间将自身添加到其父容器的Live Time容器中,并在处置时将其删除。因此,从单独的线程处理子容器可能会导致错误,即使每个子容器一次只能由一个线程访问 Unity 2.0真的(仍然)是这样吗?Unity 3.0或更高版本怎么样 如中所述,如果使用WCF实现Unity,这一点尤其重
如中所述,如果使用WCF实现Unity,这一点尤其重要。其思想是使用子容器轻松地处理HierarchylifetimeManager实例。尽管我现在想知道是否应该使用PerRequestLifeTime管理器,而不使用任何子容器。基于最新的源代码(Unity 3.5)。它应该是线程安全的。它使用parent.lifetimeContainer.Add(this)将自身添加到父对象的生存期容器中annd
Add
的实现使用lock()
对其私有子项列表进行修改。基于最新的源代码(Unity 3.5)。它应该是线程安全的。它使用parent.lifetimeContainer.Add(this)将自身添加到父对象的生存期容器中anndAdd
的实现使用lock()