如果你需要验证数千个外部 URL,可以采用多线程和异步的方式来处理。
以下是一个简单的实现方式:
例如:
private async Task IsValidUrlAsync(string url)
{
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync(url);
return response.IsSuccessStatusCode;
}
例如:
private async Task> ValidateUrlsAsync(List urls)
{
ConcurrentBag bag = new ConcurrentBag();
Parallel.ForEach(urls, async (url) =>
{
bool isValid = await IsValidUrlAsync(url);
if (!isValid)
{
bag.Add(url);
}
});
return bag.ToList();
}
现在,你可以使用以下代码来检查 URL 的有效性:
List urls = new List();
// 添加所有的 URL 到列表中
List invalidUrls = await ValidateUrlsAsync(urls);
使用上述的方式,你可以并发的验证数千个 URL,提高效率,并保证 ASP.Net 的响应速度。