问题描述
在vs2008中调试都是好的,但是如果执行编译好的程序,就会出错.即使是执行Debug下的程序,也是这样.strhtml是html字符串.以下的代码执行60次,所有变量的值都相同,在线程中执行,前29次都正常,接下来的结果,locator.count都返回0.l=newLexer(strHtml);p=newParser(l);NodeFilterlink=newHasAttributeFilter("href",url);//href属性含有指定的urllocator=p.ExtractAllNodesThatMatch(link);//验证搜索结果存在if(locator.Count<1){//未被收录errMsg="未找到收录信息";return-1;}
解决方案
解决方案二:
报什么错
解决方案三:
不报错,就是搜索的结果为0;
解决方案四:
不知道怎么贴图....我写了个简单的代码:privatevoidbutton1_Click(objectsender,EventArgse){Threadt=newThread(method);t.IsBackground=true;t.Start();}voidmethod(){for(inti=0;i<50;i++){Action<ListView,string>update=delegate(ListViewc,stringstr){c.Items.Add(str);};HttpWebRequestrequest=null;HttpWebResponseresponse=null;Streamstream=null;StreamReaderreader=null;stringerrMsg="正常"+i;stringbaidu="http://www.baidu.com/s?wd=";stringurl="http://topic.csdn.net/t/20060325/11/4639205.html";baidu=baidu+System.Web.HttpUtility.UrlEncode(url,Encoding.GetEncoding("gb2312"));request=(HttpWebRequest)HttpWebRequest.Create(baidu);request.Method="GET";request.Timeout=10000;//十秒超时response=(HttpWebResponse)request.GetResponse();stream=response.GetResponseStream();reader=newStreamReader(stream,Encoding.GetEncoding(response.CharacterSet));stringstrHtml=reader.ReadToEnd();stream.Close();reader.Close();Lexerl;Parserp;NodeListlocator;l=newLexer(strHtml);p=newParser(l);NodeFilterlink=newHasAttributeFilter("href",url);//href属性含有指定的urllocator=p.ExtractAllNodesThatMatch(link);//验证搜索结果存在if(locator.Count<1){//未被收录errMsg="未找到收录信息";}listView1.Invoke(update,newobject[]{listView1,errMsg});}}前29次成功,后面的都失败.不知道是不是Winista.HtmlParser.dll的问题?
解决方案五:
引用1楼bdmh的回复:
报什么错
不报错.只是无法获取正确的结果.