Pengurusan Concurrency dengan Tugasan: Mengehadkan Pelaksanaan Serentak
Dalam senario anda, anda menyasarkan untuk menjalankan satu set 100 tugasan serentak, tetapi hanya membenarkan maksimum 10 tugasan untuk dilaksanakan pada bila-bila masa. Ini melibatkan pengurusan konkurensi secara berkesan untuk memastikan pelaksanaan tugas yang betul dan penggunaan sumber.
Untuk menangani keperluan ini menggunakan Tasks, anda boleh menggunakan pendekatan berikut:
// Define a SemaphoreSlim to limit concurrent tasks to 10 SemaphoreSlim maxThread = new SemaphoreSlim(10); // Iterate through the tasks for (int i = 0; i < 115; i++) { // Wait for the SemaphoreSlim to allow a new task to execute maxThread.Wait(); // Create a new task and schedule it Task.Factory.StartNew(() => { // Perform the task's operation }, TaskCreationOptions.LongRunning) // Release the SemaphoreSlim when the task completes .ContinueWith((task) => maxThread.Release()); }
Dalam pelaksanaan ini:
Pendekatan ini memastikan bahawa hanya 10 tugasan dijalankan pada bila-bila masa, mengurus bersamaan dengan berkesan dan menghalang sumber kelaparan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Hadkan Pelaksanaan Tugasan Serentak kepada 10 menggunakan Tugasan C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!