ParallelOptions.MaxDegreeOfParallelism Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan atau mengatur jumlah maksimum tugas bersamaan yang diaktifkan oleh instans ini ParallelOptions .
public:
property int MaxDegreeOfParallelism { int get(); void set(int value); };
public int MaxDegreeOfParallelism { get; set; }
member this.MaxDegreeOfParallelism : int with get, set
Public Property MaxDegreeOfParallelism As Integer
Nilai Properti
Bilangan bulat yang mewakili tingkat paralelisme maksimum.
Pengecualian
Properti sedang diatur ke nol atau ke nilai yang kurang dari -1.
Keterangan
Properti MaxDegreeOfParallelism memengaruhi jumlah operasi bersamaan yang dijalankan oleh Parallel panggilan metode yang diteruskan instans ini ParallelOptions . Nilai properti positif membatasi jumlah operasi bersamaan dengan nilai yang ditetapkan. Jika -1, tidak ada batasan jumlah operasi yang berjalan bersamaan ForEachAsync (dengan pengecualian metode , di mana -1 berarti ProcessorCount).
Secara default, For dan ForEach akan menggunakan namun banyak utas yang disediakan penjadwal yang mendasar, jadi mengubah MaxDegreeOfParallelism dari default hanya membatasi berapa banyak tugas bersamaan yang akan digunakan.
Umumnya, Anda tidak perlu mengubah pengaturan ini. Namun, Anda dapat memilih untuk mengaturnya secara eksplisit dalam skenario penggunaan tingkat lanjut seperti ini:
Ketika Anda tahu bahwa algoritma tertentu yang Anda gunakan tidak akan menskalakan di luar sejumlah inti tertentu. Anda dapat mengatur properti untuk menghindari siklus pemborotan pada inti tambahan.
Saat Anda menjalankan beberapa algoritma secara bersamaan dan ingin menentukan berapa banyak sistem yang dapat digunakan setiap algoritma secara manual. Anda dapat menetapkan MaxDegreeOfParallelism nilai untuk masing-masing nilai.
Ketika heuristik kumpulan utas tidak dapat menentukan jumlah utas yang tepat untuk digunakan dan akhirnya dapat menyuntikkan terlalu banyak utas. Misalnya, dalam iterasi isi perulangan yang berjalan lama, kumpulan utas mungkin tidak dapat membedakan antara kemajuan yang wajar atau kebuntuan atau kebuntuan, dan mungkin tidak dapat mengklaim ulang utas yang ditambahkan untuk meningkatkan performa. Dalam hal ini, Anda dapat mengatur properti untuk memastikan bahwa Anda tidak menggunakan lebih dari jumlah utas yang wajar.