CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  VB.NET

程序假死

楼主hackergoogle(. 狗狗)2006-06-04 11:46:41 在 .NET技术 / VB.NET 提问

批量读取网页原文件时程序假死,   是不是要用多线程  
  Public   Shared   Function   getHttpXml(ByVal   mn   As   String)   As   String  
   
                  Dim   url   As   String   =   "http://www.123.com?mn="   &   System.Web.HttpUtility.UrlEncode(mn,   System.Text.UnicodeEncoding.GetEncoding("GB2312"))  
   
   
                  Dim   httpReq   As   System.Net.HttpWebRequest  
                  Dim   httpResp   As   System.Net.HttpWebResponse  
                  Dim   httpURL   As   New   System.Uri(url)  
                  httpReq   =   CType(WebRequest.Create(httpURL),   HttpWebRequest)  
                  httpReq.Method   =   "GET"  
                  httpReq.ContentType   =   "text/html;       charset=utf-8"  
                  httpResp   =   CType(httpReq.GetResponse(),   HttpWebResponse)  
                  httpReq.KeepAlive   =   False   '   获取或设置一个值,该值指示是否与   Internet   资源建立持久连接。  
   
                  Dim   reader   As   StreamReader   =   _  
                  New   StreamReader(httpResp.GetResponseStream,   System.Text.Encoding.GetEncoding("GB2312"))  
                  Return   reader.ReadToEnd()  
   
   
          End   Function  
  问题点数:20、回复次数:7Top

1 楼lyfer(叼着白沙写程序)回复于 2006-06-04 12:28:28 得分 0

算你运气好.哈哈,传说中的沙发我坐了.给你个我想了几个月才想通的东东.以前用别人发的会出现乱码,现在给你个类,你自己改改吧  
  Public   Class   HtmlSource  
          Private   WithEvents   myWebBrowser1   As   WebBrowser  
          Public   HtmlCode   As   String  
          Private   key   As   String  
          Private   song   As   String  
          Private   FileType   As   String  
          Public   Sub   go(ByVal   url   As   String,   ByVal   keys   As   String,   ByVal   songs   As   String,   Optional   ByVal   FileTypes   As   String   =   ".mp3")  
                  myWebBrowser1   =   New   WebBrowser  
                  key   =   keys  
                  song   =   songs  
                  FileType   =   FileTypes  
                  myWebBrowser1.Navigate(url)  
          End   Sub  
   
   
          Private   Sub   myWebBrowser1_DocumentCompleted(ByVal   sender   As   System.Object,   ByVal   e   As   System.Windows.Forms.WebBrowserDocumentCompletedEventArgs)   Handles   myWebBrowser1.DocumentCompleted  
                  HtmlCode   =   myWebBrowser1.Document.Body.OuterHtml  
                  Dim   analyze   As   New   Class1  
                  'Dim   downFile   As   New   download  
                  My.Application.DoEvents()  
                  analyze.Dowork(HtmlCode,   FileType,   song)  
                  Dim   i   As   Integer  
                  My.Application.DoEvents()  
                  For   i   =   0   To   UBound(analyze.tmp,   2)  
                          My.Application.DoEvents()  
                          If   Trim(analyze.tmp(0,   i))   <>   ""   Then  
                                  My.Computer.FileSystem.WriteAllText(My.Computer.FileSystem.CurrentDirectory   &   "\tmp\"   &   song   &   ".leaf",   Trim(analyze.tmp(1,   i))   &   "--"   &   Trim(analyze.tmp(0,   i))   &   "=="   &   Trim(analyze.tmp(2,   i))   &   vbCrLf,   True)  
                          End   If  
                  Next  
                  'My.Application.DoEvents()  
                  'downFile.DownLoadFile(Trim(analyze.tmp(0,   0)),   "c:\下载的文件\"   &   song     &   FileType,   key)  
                  form1.lv.Items.Item(form1.lv.Items.IndexOfKey(key)).BackColor   =   Color.BurlyWood  
                  analyze   =   Nothing  
                  'downFile   =   Nothing  
          End   Sub  
  End   ClassTop

2 楼lyfer(叼着白沙写程序)回复于 2006-06-04 12:29:29 得分 0

记得imports   system.netTop

3 楼lyfer(叼着白沙写程序)回复于 2006-06-04 12:33:12 得分 0

我试验了二个月,发现最好用的还是webbrowser最好.呵呵.别忘记给分噢  
  如果是出现窗体不能移动或打开时,那就在你调用时加  
  My.Application.DoEvents()  
  我同时更新500个网页查询都没死过.不过CPU使用猛涨到10%-50%  
  内存一点一点被吃了,我去发个贴问一下.Top

4 楼hackergoogle(. 狗狗)回复于 2006-06-04 12:41:12 得分 0

没看明白,你怎么不用多线程呢,怎么用WebBrowser???Top

5 楼lyfer(叼着白沙写程序)回复于 2006-06-04 12:44:33 得分 0

这是一个类呀,多线程是一样的调用呀.WebBrowser是获取网页源码的最好的东东了(我是这么觉得的).我搞了几个月了,可以说是能用的办法都用过了.你试试看.Top

6 楼hackergoogle(. 狗狗)回复于 2006-06-04 12:58:03 得分 0

可以加我qq吗,我是菜鸟,或者把你qq告诉我,???Top

7 楼lyfer(叼着白沙写程序)回复于 2006-06-04 13:07:33 得分 0

229965669  
  加我.呵呵Top

相关问题

关键词

得分解答快速导航

  • 帖主:hackergoogle

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo