Bagikan melalui


ParallelOptions.MaxDegreeOfParallelism Properti

Definisi

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.

Berlaku untuk