일부 데이터를 삽입해야하며 UI에서 WCF를 호출하고 개체 목록을 전달하여 작업을 수행하고 있습니다.Entity Framework 병렬 작업과 WCF
- : 그런 다음 서비스가 sequentialy 항목 삽입 낮은 비즈니스 계층 호출
지금 내가 이해할 수없는 문제가 이것이다 (호출의 많은 여러 가지 다른 관리자를 호출하고 만들기를/ObjectContext를 throught를 삽입)
서비스를 더 많이 호출하고 항목을 하나씩 전달하면 모든 것이 잘 작동하고 인서트는 병렬 처리되며 시간에 관한 성능 이점이 있습니다.
서비스 클래스에서 병렬 foreach를 호출하려고하면 ObjectContext가 스레드로부터 안전하지 않기 때문에 exeception이 발생하지만 너무 많은 시간이 걸리기 때문에 코드를 잠글 수 없습니다.
왜 내가 WCF를 호출하면 작동합니까? 관리자 클래스에서 동일한 작업을 수행 할 수있는 방법이 있습니까?
새로운 인스턴스가 모든 병렬 서비스 호출에 대해 생성 서비스 구성에 따라 당신에게
그건 내가 생각했던 것보다 많았지 만,이 경우 WCF를 호출하는 것과 같은 일을하기 전에 새로운 루프를 새 ObjectContext로 시작한다면 맞습니까? 대신 처리되지 않습니다 – MaRuf
병렬 처리에 관해서는 여러 가지 함정이 있습니다. WCF 서비스와 WCF 서비스를 비교할 때 얼마나 많은 병렬 작업이 실제로 실행되는지는 어떻게 판단 할 수 있습니까? 다음을 고려하십시오. 병렬. 사용 가능한 프로세서 수에 따라 크게 달라지며 WCF 서비스가 임의의 수로 제한 될 수 있습니다. 또한 병렬 루프 내에서 ObjectContext를 인스턴스화 할 때 어떤 종류의 예외가 발생 했습니까? –
"리더가 닫힐 때 잘못된 호출 시도"또는 "한 번 이상 매핑 된 엔터티 xxx"와 같은 몇 가지 다른 오류가 발생합니다. 그들은 서로 다른 컨텍스트와 함께 존재해서는 안되는 오류로 보인다. – MaRuf