/, URL- , Async.
, , .
, :
public class URLRequest
{
public URLRequest(string url)
{
Url = url;
}
public string Url{get;set;}
public string Result { get; set; }
}
:
var requests = new List<URLRequest>();
requests.Add(new URLRequest("http://website1.com"));
requests.Add(new URLRequest("http://website2.com"));
requests.Add(new URLRequest("http://website3.com"));
foreach (var request in requests) {
webList.Add(ws.GetWebsiteInfoAsync(request));
}
URL- :
public async Task<string> GetWebsiteInfoAsync(URLRequest request)
{
System.Net.WebClient wc = new System.Net.WebClient();
string result = null;
request.Result = await wc.DownloadStringTaskAsync(new Uri(request.Url));
return request.result;
}
, :
var message = new StringBuilder(500);
foreach (var request in requests) {
if (!string.IsNullOrEmpty(request.Result)) {
if (message.Length == 0) {
message.Append("Sorry, the following website(s) failed: ");
} else {
message.Append(", ");
}
message.Append(request.Url);
}
}
, ; , .