程序连续采集网页源码时,一直处在假死机状态,应该是这个函数的问题(网上找来的),请各位高手看看,给些解决方案好吗?
public string Get_Http(string a_strUrl,int timeout) 

    string strResult ; 
    try 
    { 
         HttpWebRequest myReq = (HttpWebRequest)HttpWebRequest.Create(a_strUrl) ;
myReq.Timeout = timeout; 
HttpWebResponse HttpWResp = (HttpWebResponse)myReq.GetResponse(); 
Stream myStream = HttpWResp.GetResponseStream () ; 
StreamReader sr = new StreamReader(myStream , Encoding.Default); 
StringBuilder strBuilder = new StringBuilder();  while (-1 != sr.Peek()) 

strBuilder.Append(sr.ReadLine()+"\r\n"); 

strResult = strBuilder.ToString(); 
    } 
    catch(Exception exp) 
    { 
strResult = "错误:" + exp.Message ; 
    } 
    return strResult ; 
    }

解决方案 »

  1.   

    单独放一个线程里面!====CSDN 小助手 V2.5 2005年11月05日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
    下载:http://szlawbook.com/csdnv2
      

  2.   

    回来补充下:
    这类程序一般做成console类的稍微好点。。====CSDN 小助手 V2.5 2005年11月05日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
    下载:http://szlawbook.com/csdnv2
      

  3.   

    这个假死机是因为你的程序一直在获取网页内容,你把你的这个采集函数放到线程中去就好了.
    比如
    Thread t=new Thread(new ThreadStart( Get_Http));
    t.start;
    但是这种线程不可以传递参数进去,你可以写另写一个函数来传递这个参数,或者在这个函数中读取变量的值来获取.