ฉันใช้ TPL ในโปรเจ็กต์ปัจจุบันของฉันและใช้ Parallel.Foreach เพื่อหมุนเธรดจำนวนมาก คลาสงานประกอบด้วย Wait () เพื่อรอจนกว่างานจะเสร็จสมบูรณ์ เช่นนั้นฉันจะรอให้ ParallelForEach เสร็จสมบูรณ์แล้วไปเรียกใช้คำสั่งถัดไปได้อย่างไร
ฉันใช้ TPL ในโปรเจ็กต์ปัจจุบันของฉันและใช้ Parallel.Foreach เพื่อหมุนเธรดจำนวนมาก คลาสงานประกอบด้วย Wait () เพื่อรอจนกว่างานจะเสร็จสมบูรณ์ เช่นนั้นฉันจะรอให้ ParallelForEach เสร็จสมบูรณ์แล้วไปเรียกใช้คำสั่งถัดไปได้อย่างไร
คำตอบ:
คุณไม่จำเป็นต้องทำอะไรเป็นพิเศษParallel.Foreach()
จะรอจนกว่างานที่แยกย่อยทั้งหมดจะเสร็จสมบูรณ์ จากเธรดการโทรคุณสามารถถือว่าเป็นคำสั่งซิงโครนัสเดียวและเช่นรวมไว้ใน try / catch
คุณไม่จำเป็นต้องใช้ Parallel.Foreach: มันดำเนินการ foreach ในเธรดให้มากที่สุดเท่าที่มีโปรเซสเซอร์พร้อมใช้งาน แต่จะส่งคืนแบบซิงโครนัส
สามารถดูข้อมูลเพิ่มเติมได้ที่นี่