Tôi có một số mã mà tôi hiện đang tối ưu hóa cho đồng thời trong các kiến trúc đa lõi. Trong một lớp học của tôi, tôi đã tìm thấy một vòng lặp foreach
lồng nhau. Về cơ bản, vòng lặp ngoài lặp qua một mảng các đối tượng NetworkInterface
. Vòng lặp bên trong lặp đi lặp lại mặc dù các giao diện mạng địa chỉ IP.Các vòng Parallel.ForEach lồng nhau
Điều đó khiến tôi suy nghĩ, việc có các vòng lặp Nested Parallel.ForEach
nhất thiết phải là một ý tưởng hay không? Sau khi đọc bài viết này (Nested Parallel.ForEach Loops on the same list?) Tôi vẫn không chắc chắn những gì áp dụng ở đâu về hiệu quả và thiết kế song song. Ví dụ này lấy khoảng Parallel.Foreach
câu lệnh đang được áp dụng cho danh sách trong đó cả hai vòng lặp đang thực hiện các thao tác trên danh sách đó.
Trong ví dụ của tôi, các vòng được làm những việc khác nhau, vì vậy, nên I:
- Sử dụng vòng lặp lồng nhau Parallel.ForEach?
- Người dùng Parallel.ForEach trên vòng kết nối gốc và để vòng lặp bên trong như hiện trạng?
Bạn có thể kiểm tra giải pháp bằng Đồng hồ bấm giờ không? Sau đó, bạn sẽ biết nếu nó có giá trị. – mike00