Rumah >pembangunan bahagian belakang >C++ >Bilakah Saya Harus Menggunakan Parallel.ForEach Daripada Gelung Foreach dalam .NET?
Pemprosesan Parallelizing dengan Parallel.ForEach
Dalam pengaturcaraan .NET, gelung foreach tradisional melakukan lelaran secara berurutan, satu elemen pada satu masa, menggunakan satu utas. Pendekatan ini boleh membawa kepada pemprosesan yang lebih perlahan untuk tugas yang melibatkan operasi yang panjang atau intensif.
Memperkenalkan Parallel.ForEach
Kaedah Parallel.ForEach membolehkan pemprosesan selari dengan memanfaatkan berbilang benang . Kaedah ini menjalankan lelaran secara serentak, membahagikan tugas pemprosesan antara benang yang tersedia. Dengan mengagihkan beban kerja, Parallel.ForEach boleh meningkatkan masa pelaksanaan dengan ketara, terutamanya untuk proses yang perlahan atau intensif data.
Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa Parallel.ForEach mungkin tidak sentiasa lebih pantas. Untuk proses yang singkat atau pantas, overhed yang terlibat dalam penciptaan dan pengurusan thread boleh mengatasi faedah prestasi.
Contoh Menukar kepada Selari.ForEach
Pertimbangkan kod berikut menggunakan gelung foreach:
string[] lines = File.ReadAllLines(txtProxyListPath.Text); List<string> list_lines = new List<string>(lines); foreach (string line in list_lines) { // Perform operations on each line }
Untuk menulis semula kod ini menggunakan Parallel.ForEach:
Parallel.ForEach(list_lines, line => { // Perform operations on each line });
Dalam contoh ini, kaedah Parallel.ForEach mengambil koleksi list_lines sebagai input dan mencipta urutan baharu untuk setiap baris untuk melaksanakan operasi yang ditentukan secara selari.
Perbezaan Utama antara Foreach Loop dan Parallel.ForEach
Feature | Foreach Loop | Parallel.ForEach |
---|---|---|
Iteration Style | Sequential | Parallel |
Thread Usage | Single Thread | Multiple Threads |
Framework Availability | All .NET frameworks | .NET 4.0 and newer |
Overhead | Low for quick processes | Higher for quick processes due to thread creation and management |
Performance | Faster for short and quick processes | Faster for lengthy and data-intensive processes |
Atas ialah kandungan terperinci Bilakah Saya Harus Menggunakan Parallel.ForEach Daripada Gelung Foreach dalam .NET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!