设置 WebClient.DownloadFile() 超时
使用 WebClient.DownloadFile()
下载远程文件可能会很慢,尤其是无法访问的文件。 超时机制对于避免无限期等待至关重要。
实施:
实现超时的最有效方法是创建一个继承自WebRequest
的自定义类。这允许直接在底层请求上设置 Timeout
属性。 这是一个例子:
<code class="language-csharp">using System; using System.Net; public class TimedWebClient : WebClient { public int TimeoutMilliseconds { get; set; } public TimedWebClient() : this(60000) { } // Default 60-second timeout public TimedWebClient(int timeoutMilliseconds) { TimeoutMilliseconds = timeoutMilliseconds; } protected override WebRequest GetWebRequest(Uri address) { WebRequest request = base.GetWebRequest(address); if (request != null) { request.Timeout = TimeoutMilliseconds; } return request; } }</code>
这个 TimedWebClient
类的功能与标准 WebClient
类似,但添加了可配置的超时。 将其用作直接替代品,以毫秒为单位指定超时。 这可确保所有下载尝试均遵守定义的超时,从而防止不可用文件出现长时间延迟。
以上是如何使用 WebClient.DownloadFile() 实现超时?的详细内容。更多信息请关注PHP中文网其他相关文章!