Rumah >pembangunan bahagian belakang >C++ >Bilakah Saya Harus Menggunakan Parallel.ForEach Daripada Gelung Foreach dalam .NET?

Bilakah Saya Harus Menggunakan Parallel.ForEach Daripada Gelung Foreach dalam .NET?

Barbara Streisand
Barbara Streisandasal
2025-01-03 21:28:45766semak imbas

When Should I Use Parallel.ForEach Instead of a Foreach Loop in .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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn