여러 스레드에서 요구하는 종속성을 관리하는 데 dryioc을 사용하고 싶습니다. 종속성이 ioc에 의해 해결되어야하는 각 작업을 전달하는 스레드를 시작하고 싶습니다. 이것이 어떤 도움이 이상적으로 보일 것 인 지 확실하지 않습니다.Dryioc 및 다중 스레드
1
A
답변
1
당신이 필요로하는 경우 서비스는 다음 스레드 (스레드 당 단일 인스턴스)에 범위 컨테이너 ThreadScopeContext
을 설정
RootContainer = new Container(scopeContext: new ThreadScopeContext());
RootContainer.Register<IService, MyService>(Reuse.InCurrentScope);
// in your thread
using (RootContainer.OpenScope())
{
var service = RootContainer.Resolve<IService>();
// use the service
}
새로운 스레드에서 라이브 시작하지만 다음 같은 인스턴스를 전파 서비스가 필요한 경우 async/await
호출 (가능하면 다른 스레드에서)을 통해 AsyncExecutionFlowScopeContext
을 사용하십시오.
DryIoc의 범위 컨텍스트는 오픈 스코프를 저장할 수있는 컨테이너와 독립적 인 제 3 자 개체입니다 (예 : 스레드 정적 또는 AsyncLocal
변수입니다.
다른 방법 (기본 동작)은 열린 범위를 범위의 새 컨테이너과 연결하는 것이지만 해결하려면이 새 컨테이너에 대한 참조가 필요합니다. 여기에 나는 어떤 범위 컨텍스트를 사용하지만, scopedContainer
에서 대신 루트 하나 해결해야하고 있지 않다면 : [DryIoc 위키]에서
RootContainer = new Container(); // without ambient scope context
RootContainer.Register<IService, MyService>(Reuse.InCurrentScope);
// in your thread
using (var scopedContainer = RootContainer.OpenScope())
{
var service = scopedContainer.Resolve<IService>();
// use the service
}
관련 문제
- 1. 다중 스레드 및 스레드 동기화
- 2. 다중 스레드 및 GDB
- 3. 구성 및 다중 스레드
- 4. 다중 스레드 및 메모리
- 5. 다중 스레드 및 상속
- 6. MVC 및 다중 스레드
- 7. SQLite 및 다중 스레드
- 8. 다중 스레드 및 Sqlalchemy
- 9. 다중 스레드 및 pthread_join
- 10. 다중 스레드 및 동기화 스레드 가시성
- 11. C# .NET : "다중 스레드 아파트"및 "다중 스레드"
- 12. 다중 프로세스 및 다중 스레드 디자인
- 13. 다중 스레드 및 UI 동작
- 14. Java Swingworker 및 다중 스레드
- 15. HTTP 다운로드 및 다중 스레드
- 16. WPF BitmapFrame 및 다중 스레드
- 17. Grails 및 다중 스레드 프로세스
- 18. 다중 스레드 및 대리자 호출
- 19. NSMutableDictionary 및 다중 스레드 액세스
- 20. C# - 대기열 및 다중 스레드
- 21. 다중 스레드, 블로킹 및 세마포어
- 22. 목록 및 다중 스레드 환경
- 23. waveOut (Win32API) 및 다중 스레드
- 24. 다중 스레드 및 부스트의 io_service
- 25. 다중 스레드 및 Java 동기화
- 26. 다중 스레드 및 교착 상태
- 27. C++ - 스레드 및 다중 대기열
- 28. 다중 스레드 및 이벤트 사용
- 29. 모든 클래스가있는 DryIoc WebRequest로 Singleton 및 DbContext
- 30. 다중 포트를위한 다중 스레드?
(https://bitbucket.org/dadhi/dryioc/overview) : _Thread- 안전하고 lock-free - 등록 및 해결은 컨테이너 상태를 손상시키지 않고 병행하여 진행될 수 있습니다. _ - 진술이 사실이라면 걱정없이 스레드로부터 자유롭게 종속성을 주입 할 수 있어야합니다. 행운을 빕니다! – BlueStrat