在线等 要向网页提交大量数据,但是我写的执行效率太慢,前两次还可以,但是第三次就不能执行了
在线等 要向网页提交大量数据,但是我写的执行效率太慢,前两次还可以,但是第三次就不能执行了
代码如下
private void SendMsg(string sendMsg,string PostUrl)
{
Encoding encode = System.Text.Encoding.GetEncoding("gb2312");
byte[] arrB = encode.GetBytes(sendMsg)
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(PostUrl);
myReq.Method = "POST";
myReq.ContentType = "application/x-www-form-urlencoded";
myReq.ContentLength = arrB.Length;
Stream outStream = myReq.GetRequestStream(); //执行到这一步就卡住了
outStream.Write(arrB, 0, arrB.Length);
outStream.Close();
outStream.Dispose();
}
我是用timer组件实现循环的,但是老师卡住,望高手指点~
没有多少分了,但是尽量多给~
------解决方案--------------------少传点数据
------解决方案--------------------少传点数据
------解决方案--------------------timer时间间隔放长一些试试
------解决方案--------------------GetRequestStream 同步访问造成线程阻塞(等待返回结果) 当然会卡
------解决方案--------------------您可以使用Ajax技术.XMLHttpRequest对象啊!
------解决方案--------------------MARK
------解决方案--------------------这个本来就很卡……
要想不是太卡的话,我的办法是在一个独立的线程里面操作,然后设置它的优先级为较低
------解决方案--------------------问题恐怕不是数据数量多少的问题,而是你的程序有小错误:
你上传的数据是gb2312编码,但是,
你发送的时候写的却是myReq.ContentType = "application/x-www-form-urlencoded";
这两种是不同的编码,特别是出现汉字的时候。
你的服务器有可能会在编码上报错。