C# 为什么你会这样做
我可以尝试从url获取字符串,但当我这样做时,如果您的目标是.NET 4.5之前的版本,那么我的程序GUI将冻结,没有async/await-相反,您可以使用异步版本的C# 为什么你会这样做,c#,.net-3.5,C#,.net 3.5,我可以尝试从url获取字符串,但当我这样做时,如果您的目标是.NET 4.5之前的版本,那么我的程序GUI将冻结,没有async/await-相反,您可以使用异步版本的DownloadStringAsync,它在下载字符串时引发事件 var client = new WebClient(); client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(DownloadStringCompletedHandle
DownloadStringAsync
,它在下载字符串时引发事件
var client = new WebClient();
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(DownloadStringCompletedHandler);
for (long i = 1; i < gethow; i++)
{
string WebAdress = "https://xxxxxx.xxx/web?id=";
var request = WebAdress + (fromNumber - 1 + i);
client.DownloadStringAsync(request);
}
// -- > Elsewhere in your form
void DownloadStringCompletedHandler(object sender, DownloadStringCompletedEventArgs e)
{
slas = "0" + Convert.ToString((fromNumber - 1 + i));
if (e.Result == "Test")
{
if (!listBox1.Items.Contains(slas))
{
listBox1.Items.Add(slas);
godn++;
}
}
}
应该是
client.DownloadStringAsync(request);
并以
e.Result
的形式接收DownloadStringCompletedHandler
中的字符串。您针对的是.NET的哪个版本?它会冻结,因为WebClient是同步的,所以它会阻止整个循环。i使用.NET 3.5,那么–Fran我必须做什么?最简单的方法是将代码放到后台工作中,使其异步运行。此外,在您的问题中出现MyIrancell BruteForce[Status:Attacking]
,这有点令人怀疑!很好,但我不喜欢使用class(所有的作品都必须放在按钮内)@Pwn3rGamer,我担心这个评论毫无意义。什么意思?我说的课堂是指你的形式!结果如何?结果里面的结果必须是从URL下载的字符串所有作品必须在按钮里面我闻到(重)UI代码中的逻辑@Pwn3rGamer您应该将代码带到另一个类中,并在单击按钮时调用它。。。直接在按钮单击的eventhandler中写入逻辑不好s
是事件的发送者(可能是webclient实例)e
是包含响应信息的事件参数(在本例中是下载的结果)
var client = new WebClient();
client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(DownloadStringCompletedHandler);
result=client.DownloadStringAsync(request); // <-- This line is wrong
client.DownloadStringAsync(request);