Saya sedikit bingung Parallel.ForEach
.
Apa itu Parallel.ForEach
dan apa fungsinya?
Tolong jangan referensi tautan MSDN.
Berikut ini contoh sederhana:
string[] lines = File.ReadAllLines(txtProxyListPath.Text);
List<string> list_lines = new List<string>(lines);
foreach (string line in list_lines)
{
//My Stuff
}
Bagaimana saya bisa menulis ulang contoh ini dengan Parallel.ForEach
?
c#
multithreading
.net-4.0
parallel.foreach
SilverLight
sumber
sumber
Parallel
kelas dan menggunakan PLINQ.foreach
. Perbedaannya adalah bahwa versi paralel dapat melakukan banyak "tindakan" pada saat yang sama. Dalam kebanyakan kasus (tergantung pada komputer apa yang menjalankan kode, dan seberapa sibuknya, dan hal-hal lain) akan lebih cepat, dan itulah keuntungan yang paling penting. Perhatikan bahwa ketika Anda melakukannya secara paralel, Anda tidak dapat mengetahui urutan barang yang diproses. Dengan biasa (serial)foreach
, Anda dijamin yanglines[0]
datang pertama, lalulines[1]
, dan sebagainya.Jawaban:
sumber
List<T>
;)Loop depan:
Paralel. Setiap Pertemuan:
Contoh berikut dengan jelas menunjukkan perbedaan antara loop foreach tradisional dan
Parallel.ForEach () Contoh
Keluaran
Menggunakan Parallel. FOREach misalnya
sumber
Ini akan menyebabkan garis diurai secara paralel, di dalam loop. Jika Anda ingin pengantar yang lebih rinci, kurang "referensi" ke kelas Paralel, saya menulis seri pada TPL yang mencakup bagian tentang Paralel . Untuk Setiap.
sumber
Untuk file besar, gunakan kode berikut (Anda kurang haus memori)
sumber
Garis-garis ini bekerja untuk saya.
sumber