怎样序列化下载网页?

shijunbao1 2008-01-23 08:15:48
这是一段我程序中的下载网页的代码片断:

// Create a new WebClient instance.
WebClient myWebClient = new WebClient();
label1.Text = "开始下载文件...";
byte[] myDataBuffer = myWebClient.DownloadData(remoteUrl);
//将buffer中的字节吗重新中文编码
string data = new string(System.Text.Encoding.GetEncoding("GB2312").GetChars(myDataBuffer));
label1.Text = "下载完毕!"

下载一个网页很不错,但是遇到多个网页需要下载,比如说string remoteUrl[5],我尝试用for循环,运行时就会卡住。。。。。。请问怎么序列化下载这些网页好呢?
...全文
119 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
flashlove2008 2008-01-25
  • 打赏
  • 举报
回复
ding gang hao zai xue xi WebClient
itymx 2008-01-25
  • 打赏
  • 举报
回复
兄弟我没听说过 学习一下
wxg22526451 2008-01-25
  • 打赏
  • 举报
回复
up
shijunbao1 2008-01-25
  • 打赏
  • 举报
回复
终于找到方法了。。。
貌似BeginInvoke异步委托能解决~~
liaoshenghang 2008-01-24
  • 打赏
  • 举报
回复
刚学CS,BS还没有学到...
重典 2008-01-24
  • 打赏
  • 举报
回复
A多线程,B写在上一个的Complete事件里
shijunbao1 2008-01-24
  • 打赏
  • 举报
回复
还是回家阿?
shijunbao1 2008-01-24
  • 打赏
  • 举报
回复
兄弟出差阿?
he_8134 2008-01-24
  • 打赏
  • 举报
回复
无语了。。。

明天要坐长途车。。。现在心情好差啊。。。。

谁帮忙回答一下。。。。
shijunbao1 2008-01-24
  • 打赏
  • 举报
回复
那如果在winform下,一个button_Click事件中进行,每个结果输出到一字符串数组中该怎样做呢?
对事件不是很熟悉~~~~
shijunbao1 2008-01-23
  • 打赏
  • 举报
回复
好贴,受教!
he_8134 2008-01-23
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
namespace ConsoleApplication1
{
class Program
{
static int ok=0;
static void Main(string[] args)
{
string[] links = new string[] {"http://baidu.com","http://163.com","http://sohu.com" };
foreach (string s in links)
{
WebClient wc = new WebClient();
wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);
wc.DownloadStringAsync(new Uri(s));
}
while (ok < 3) {
System.Threading.Thread.Sleep(100);//防止主线程结束程序
}
}

static void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
Console.WriteLine(e.Result);
ok++;
}
}
}
he_8134 2008-01-23
  • 打赏
  • 举报
回复
可以直接异步下载。。不用自己管理线程。。。

System.Net.WebClient.DownloadStringAsync(System.Uri)

System.Net.WebClient.DownloadStringCompleted

如wc.DownloadStringAsync(new Uri(@"http://baidu.com"));
wc.DownloadStringCompleted+=.....

然后在事件里面处理
shijunbao1 2008-01-23
  • 打赏
  • 举报
回复
咋个思路阿~~?
he_8134 2008-01-23
  • 打赏
  • 举报
回复
WebClient还有一个方法是DownloadString

下载东西要时间的,当然会“卡住”....

你需要的是多线程。。。。

110,532

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧