현재 프로젝트에서 TPL을 사용하고 Parallel.Foreach를 사용하여 많은 스레드를 돌립니다. Task 클래스에는 작업이 완료 될 때까지 대기 할 Wait()이 포함됩니다. 이와 같이 Parallel.ForEach가 완료 될 때까지 기다렸다가 다음 문장을 실행하는 방법은 무엇입니까?Parallel.ForEach가 완료 될 때까지 기다릴 수있는 방법
78
A
답변
132
특별한 작업을 수행 할 필요가 없습니다. Parallel.Foreach()
은 분기 된 모든 작업이 완료 될 때까지 대기합니다. 호출 스레드에서 단일 동기 문으로 처리 할 수 있으며 예를 들어 try/catch 내부에 랩핑 할 수 있습니다.
11
Parallel.Foreach에서는 필요하지 않습니다. foreach는 사용 가능한 프로세서 수만큼의 스레드에서만 실행되지만 동 기적으로 반환됩니다. , Parallel.ForEach (groupedUnreadMessages :
자세한 내용은 here
+9
사용하는 (최대) 스레드 수가 너무 간단하지 않습니다. –
관련 문제
- 1. 내 페이지에서 iframe이 다시 렌더링 될 때까지 기다릴 수있는 방법
- 2. Application.Calculate가 완료 될 때까지 대기
- 3. 중첩 된 BackgroundWorkers가 완료 될 때까지 대기
- 4. db 쿼리가 완료 될 때까지 어떻게 대기해야합니까?
- 5. 활동 완료 메소드가 완료 될 때까지 대기합니까?
- 6. 모든 프로세스가 완료 될 때까지 대기
- 7. 이벤트가 완료 될 때까지 블로킹
- 8. 이벤트가 완료 될 때까지 차단하십시오.
- 9. 이벤트가 완료 될 때까지 기다림
- 10. 이벤트가 완료 될 때까지 대기하는 방법
- 11. 비동기 요청이 완료 될 때까지 기다리는 방법
- 12. 모든 스레드가 완료 될 때까지 기다리는 방법
- 13. 스트림 쓰기가 완료 될 때까지 대기하는 방법
- 14. 모든 XHR2가 완료 될 때까지 기다리는 방법
- 15. 여러 스레드가 완료 될 때까지 기다리는 방법?
- 16. 다운로드가 완료 될 때까지 기다리는 방법?
- 17. 명령이 완료 될 때까지 기다리십시오.
- 18. 웹 요청이 완료 될 때까지 기다림
- 19. 비동기 요청이 완료 될 때까지 기다려주십시오.
- 20. 동기식 startActivityForResult - 완료 될 때까지 기다림
- 21. 단위 테스트에서 애니메이션이 완료 될 때까지 기다리는 방법
- 22. Java 스레드가 완료 될 때까지 기다려주십시오.
- 23. 다른 대상이 완료 될 때까지 기다리는 개미 목표를 만드는 방법
- 24. 비활성화 에어로가 완료 될 때까지 대기
- 25. 두 개의 스레드가 완료 될 때까지 대기
- 26. ToasterBox에 문제가 있습니다. 타이머를 조인하거나 타이머가 파이썬에서 완료 될 때까지 기다릴 수 있습니까?
- 27. 이전 동작이 완료 될 때까지 지연 동작?
- 28. libpq - PQsendQuery가 완료 될 때까지 기다림
- 29. flex 4 - 동결없는로드가 완료 될 때까지 기다림
- 30. Loader가 ActivityInstrumentationTestCase2에서 완료 될 때까지 차단
가 어떤 상황에서 혼동 될 수있다 "Parallel.Foreach()가 모든 분기 작업이 완료 될 때까지 기다릴 것"같은 (비동기 작업 내부를) 찾을 수 있습니다 비동기 unreadMsgCollection => {/ * 작동 * /}); –
여기에 stackoverflow의 다른 문제 : http://stackoverflow.com/questions/11564506/nesting-await-in-parallell-foreach –
이 대답은 async/await 전에 2011 년부터입니다. 하지만 제가 말했듯이 ForEach 내부에 스레드를 생성하는 것은 좋은 생각이 아닙니다. 비동기 동작도 아닙니다. 게시 한 링크는 유용한 정보와 솔루션을 제공합니다. –