c# webrequest无响应

来源:百度知道 编辑:UC知道 时间:2024/06/08 11:46:46
代码如下
private void button2_Click(object sender, EventArgs e)
{
for (int i = 0; i < listBox1.Items.Count; i++)
{
req = (HttpWebRequest)WebRequest.Create(textBox1.Text + "?url=" + listBox1.Items[i].ToString());
res = (HttpWebResponse)req.GetResponse();

System.Threading.Thread.Sleep(3000);//休息3秒再提交下一个

}
}
主要向asp页提交listbox中的数据,asp的内容为写入数据库。运行后程序无响应,不明白什么原因。高手给点指示。。。

这是因为,界面响应需要主线程是空闲的,在你的函数中,主线程不是被用来提交数据、等待服务器响应,就被你给Sleep了,总而言之,就是没有时间来响应用户操作,于是就表现为你看到程序无响应了。其实不是程序死了,只是界面主线程没法响应你的操作。

所以,主线程不要用来做时间很长或会阻塞的事情,这一定会导致程序无响应。正确的方法是,这些事情应该用单独的线程来运行。

PS:界面响应的操作,一定是在主线程中运行的。

res = (HttpWebResponse)req.GetResponse();

好象getResponse()方法有异常,我也被这个问题一直困扰着.

地址是否正确