.NET WebClient オブジェクトでのタイムアウトの管理
ネットワーク操作を実行する堅牢な .NET アプリケーションには、効果的なタイムアウト管理が不可欠です。 タイムアウトを適切に構成すると、サーバーの速度が遅い、または応答しないことが原因でアプリケーションがハングするのを防ぎます。 これは、信頼性の低い Web サービスとやり取りする場合に特に重要です。
この例では、WebClient
クラスを使用して遅いサーバーからデータをダウンロードするときに発生する早期タイムアウトの一般的な問題に対処します。 タイムアウト期間を延長する方法を説明します。
カスタムタイムアウトの実装
標準の WebClient
は、無限タイムアウトを直接サポートしていません。タイムアウト動作をカスタマイズするには、GetWebRequest
メソッドをオーバーライドする派生クラスを作成します。
<code class="language-csharp">public class ExtendedWebClient : WebClient { protected override WebRequest GetWebRequest(Uri uri) { WebRequest request = base.GetWebRequest(uri); request.Timeout = 20 * 60 * 1000; // Set timeout to 20 minutes return request; } }</code>
拡張クラスの活用
この ExtendedWebClient
の使用は簡単です。これをインスタンス化し、以前と同様に DownloadFile
メソッドを使用します。
<code class="language-csharp">ExtendedWebClient client = new ExtendedWebClient(); client.Encoding = Encoding.UTF8; client.DownloadFile(downloadUrl, downloadFile);</code>
このアプローチでは、無期限の待機に頼ることなく、制御され、調整可能なタイムアウトが提供されます。 これにより、遅いネットワーク応答を適切に処理できるようになり、アプリケーションの安定性が向上します。
以上が.NET WebClient オブジェクトのタイムアウトをカスタマイズするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。