日期:2014-05-18  浏览次数:20900 次

在线等 要向网页提交大量数据,但是我写的执行效率太慢,前两次还可以,但是第三次就不能执行了
在线等 要向网页提交大量数据,但是我写的执行效率太慢,前两次还可以,但是第三次就不能执行了
代码如下
 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";
这两种是不同的编码,特别是出现汉字的时候。
你的服务器有可能会在编码上报错。