>在.NET
中管理并发异步I/O操作 有效处理众多异步操作对于防止资源耗尽至关重要。本文讨论了一个常见的方案:在限制同时请求的数量时,执行并行HTTP请求。 >利用异步信号在.NET 4.5 beta中增强的.net's
类,为控制并发异步操作提供了有效的异步信号。 这是实施它的方法:
SemaphoreSlim
<code class="language-csharp">public async Task MyOuterMethod() { var throttler = new SemaphoreSlim(initialCount: 20); foreach (var url in urls) { await throttler.WaitAsync(); using (var client = new HttpClient()) // Added using statement for proper resource disposal { var html = await client.GetStringAsync(url); } throttler.Release(); } }</code>请求在执行之前等待信号量的可用性,并在完成后将其释放。 请注意,添加了适当
处置的A HttpClient
语句。using
>
HttpClient
任务并行库(TPL)提供了另一种方法。 通过创建绑定到委托和使用自定义任务调度程序的任务,您可以管理并发。 MSDN提供了自定义
实现的示例。 异步信号的优势TaskScheduler
增强的性能:
有效的异步调度可提高性能。
以上是如何限制.NET中的同步异步I/O操作?的详细内容。更多信息请关注PHP中文网其他相关文章!