创建对象的线程中的dependency injection

如果我有一个从主应用程序启动的线程。 在此线程中生成事件。 每次生成事件时都会创建一个对象。 在该对象中需要依赖,因此我想注入该对象。 如何将此依赖性传递给创建的对象? 我是否需要向下传递depandancy(并让在线程中工作的类知道依赖性)或者是否有更好的方法来执行此操作? 我正在使用Unity btw。

最安全的方法是让每个线程在开始时构建一个新的对象图。 不要通过其他线程传递依赖项。

通过dependency injection,您可以尝试集中关于对象生命周期的知识。 这个集中的地方称为组合根 。 当您开始将依赖项从一个线程传递到另一个线程时,代码的这些部分必须知道传递这些依赖项是否安全。 例如,那些依赖项是线程安全的吗? 在许多情况下分析这可能是微不足道的,但是阻止您使用其他实现来更改这些依赖项,因为现在您必须记住代码中有一个地方发生了这种情况,您需要知道传递了哪些依赖项。 您再次分散了这些知识,使得更难以推断DI配置的正确性,并且更容易以导致竞争条件的方式错误配置容器。

您可以在此Wiki页面上找到有关此主题的更多信息: 如何在multithreading应用程序中使用依赖项注入