任務並發管理:限制並發執行
在您的場景中,您的目標是同時執行一組100 個任務,但只允許任何給定時間最多執行10 個任務。這涉及有效管理並發性,以確保正確的任務執行和資源利用。
要使用任務滿足此要求,您可以採用以下方法:
// 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()); }
在此實作中:
這種方法確保在任何給定時刻只有 10 個任務運行,有效管理並發並防止資源佔用飢餓。
以上是如何使用 C# 任務將並發任務執行限制為 10 個?的詳細內容。更多資訊請關注PHP中文網其他相關文章!