タスクによる同時実行管理: 同時実行の制限
シナリオでは、100 個のタスクのセットを同時に実行することを目標としていますが、許可されるのは 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 中国語 Web サイトの他の関連記事を参照してください。