C# 如何同时运行多个WebClient?
这是我的密码C# 如何同时运行多个WebClient?,c#,webclient,downloadstring,C#,Webclient,Downloadstring,这是我的密码 try { for (int i = 0; i < RichTextbox2.Lines.Length; i++) { var length = urlwebapi.Lines.Length; { WebClient f = new WebClient(); dynamic read = f.DownloadString(urlwebapi.Lines[(i % length)]
try
{
for (int i = 0; i < RichTextbox2.Lines.Length; i++)
{
var length = urlwebapi.Lines.Length;
{
WebClient f = new WebClient();
dynamic read = f.DownloadString(urlwebapi.Lines[(i % length)] + RichTextbox2.Lines[i]);
JObject o = JObject.Parse(read);
}
}
}
catch (WebException e)
{
MessageBox.Show(e.Message);
}
MessageBox.Show("done");
代码只能在urlwebapi中同时运行一个。当代码被执行时,我该如何获取,然后立即运行到5urlwebapi(example1.com直到example5.com),同时我建议使用httpClient。 这使它成为一个步行在公园。。使用后,您可以正确地处理这些问题 (伪代码)
下面是如何执行此操作的示例代码:
public async Task<string[]> DownloadStringsAsync(string[] urls)
{
var tasks = new Task<string>[urls.Length];
for(int i=0; i<tasks.Length; i++)
{
tasks[i] = DownloadStringAsync(urls[i]);
}
return await Task.WhenAll(tasks);
}
public async Task<string> DownloadStringAsync(string url)
{
//validate!
using(var client = new WebClient())
{
//optionally process and return
return await client.DownloadStringTaskAsync(url)
.ConfigureAwait(false);
}
}
公共异步任务下载StringsAsync(字符串[]URL)
{
var tasks=新任务[url.Length];
对于(int i=0;我看了一下。这应该可以帮助您处理多个请求。或者干脆返回等待任务。whalll(url.Select(url=>DownloadStringAsync(url));
using (var client = new httpClient)
{
//your logic, and you can keep using client in this context.
}
public async Task<string[]> DownloadStringsAsync(string[] urls)
{
var tasks = new Task<string>[urls.Length];
for(int i=0; i<tasks.Length; i++)
{
tasks[i] = DownloadStringAsync(urls[i]);
}
return await Task.WhenAll(tasks);
}
public async Task<string> DownloadStringAsync(string url)
{
//validate!
using(var client = new WebClient())
{
//optionally process and return
return await client.DownloadStringTaskAsync(url)
.ConfigureAwait(false);
}
}