ASYNC/WAITおよびTPL DATAFLOW
ソリューション:TPL Dataflow await
Parallel.ForEach
推奨されるソリューションは、タスクパラレルライブラリ(TPL)データフローフレームワークを活用します。 具体的には、
TransformBlock
次のコードは、同時のwcf呼び出しに対してActionBlock
および
TransformBlock
このアプローチには、いくつかの重要な利点があります:ActionBlock
<code class="language-csharp">var ids = new List<string> { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" }; var getCustomerBlock = new TransformBlock<string, Customer>( async i => { ICustomerRepo repo = new CustomerRepo(); return await repo.GetCustomer(i); }, new ExecutionDataflowBlockOptions { MaxDegreeOfParallelism = DataflowBlockOptions.Unbounded // Or specify a limit }); var writeCustomerBlock = new ActionBlock<Customer>(c => Console.WriteLine(c.ID)); getCustomerBlock.LinkTo(writeCustomerBlock, new DataflowLinkOptions { PropagateCompletion = true }); foreach (var id in ids) { getCustomerBlock.Post(id); } getCustomerBlock.Complete(); writeCustomerBlock.Completion.Wait();</code>
以上が並行してAsync/async/async/async/asyncを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。