Apakah paralel ForEach async?
Apakah paralel ForEach async?

Video: Apakah paralel ForEach async?

Video: Apakah paralel ForEach async?
Video: Стоит ли Parallel.For/ForEach в C#? (и как его модернизировать) 2024, Mungkin
Anonim

Seluruh ide di balik Paralel . Untuk setiap () adalah bahwa Anda memiliki satu set utas dan setiap utas memproses bagian dari koleksi. Seperti yang Anda perhatikan, ini tidak bekerja dengan tidak sinkron - tunggu, di mana Anda ingin melepaskan utas selama tidak sinkron panggilan. Untuk setiap (), yang mendukung asinkron Tugas dengan baik.

Mengenai hal ini, bagaimana Anda menunggu foreach paralel selesai?

Anda tidak perlu melakukan sesuatu yang istimewa, Paralel . Untuk setiap () akan tunggu sampai semua tugas bercabangnya adalah menyelesaikan . Dari utas panggilan, Anda dapat memperlakukannya sebagai pernyataan sinkron tunggal dan misalnya membungkusnya di dalam try/catch. Anda tidak membutuhkan itu dengan Paralel.

Demikian pula, apakah foreach tidak sinkron? Bukan itu asinkron . Itu menghalangi. Mereka yang pertama kali belajar bahasa seperti Java, C, atau Python sebelum mencoba JS akan bingung ketika mereka mencoba untuk menempatkan penundaan sewenang-wenang atau panggilan API di badan loop mereka.

Selain ini, bagaimana Anda melanjutkan foreach paralel?

Saat Anda mengubah loop Anda menjadi definisi yang kompatibel untuk Paralel . Untuk setiap logika, Anda akhirnya membuat badan pernyataan menjadi lambda. Nah, itu adalah tindakan yang dipanggil oleh Paralel fungsi. Jadi, ganti melanjutkan dengan return, dan break dengan pernyataan Stop() atau Break().

Apakah tugas WhenAll paralel?

Aplikasi dari Ketika semua mengembalikan satu tugas itu tidak lengkap sampai setiap tugas dalam koleksi selesai. NS tugas tampak berlari masuk paralel , tetapi tidak ada utas tambahan yang dibuat. NS tugas dapat menyelesaikan dalam urutan apa pun.

Direkomendasikan: