.NET I/O操作で同時に制限されています非同期プログラミングは、並列タスクに大きな利点を提供します。ただし、これらの非同期操作の並行性を管理することは、システムの過負荷を回避するために不可欠です。この記事では、I/O操作の数を制限してI/O操作の数を制限して、最高のパフォーマンスを確保する一般的な問題について説明します。 質問:
複数のURLを取得するために同時に非同期HTTP要求を使用していない場合、デフォルトの動作は多数の同時リクエストを作成することです。これにより、リソースの疲労とパフォーマンスの低下につながる可能性があります。課題は、一度に20のリクエストなど、指定されたしきい値に並行性を制限することです。
解決策:
.NET 4.5ベータ版は、リソースへの同時アクセスを制御するための効果的な方法を提供する非同期信号体積(Semaphoreslim)を導入しました。 WaitaSync()メソッドにより、指定されたスロットの数の前に、以前に吊り下げられた非同期メソッドの実行を停止できます。
サンプルコード:
このコードでは、waitasync()メソッドは、一度に20のリクエストのみを保証します。新しいリクエストが配置されると、溝が利用できるようになるまで待ちます。タスクのスケジューリングを使用するための代替ソリューション:
別の方法では、TPLベースのスケジューリングを使用して、委託されたバインディングタスクを作成します。その後、カスタムタスクスケジューラを実装して、同時制限の実行を強制することができます。詳細については、MSDNのTaskschedulerの例を参照してください。
以上が.NETの同時非同期I/O操作を制限するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。