セクション 3. 章 4
single
Challenge: Control Parallelism in Async Tasks
メニューを表示するにはスワイプしてください
タスク
スワイプしてコーディングを開始
Your goal is to implement an asynchronous method that processes a list of asynchronous tasks in parallel, while limiting the number of tasks that run at the same time.
- The method should accept two parameters:
- A list of asynchronous task factories (
Func<Task>), where each factory returns a task when invoked. - An integer representing the maximum number of concurrent operations (
maxDegreeOfParallelism).
- A list of asynchronous task factories (
- Ensure that at no point are more than
maxDegreeOfParallelismtasks running in parallel. - Every task factory in the list must be started and awaited, so that all tasks complete before the method returns.
- To control the number of concurrently running tasks, use a
SemaphoreSlim. Before starting a new task, callWaitAsyncon the semaphore to ensure you do not exceed the concurrency limit. After a task completes, callReleaseon the semaphore to allow another task to begin. - It is important to use
Task.WhenAllto await all started tasks, guaranteeing that the method does not return until every task has finished.
解答
すべて明確でしたか?
フィードバックありがとうございます!
セクション 3. 章 4
single
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください