>在.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中文網其他相關文章!