如何封装一个异步函数操作?

soddyque 2007-08-31 09:49:01
private string GetPage(string url)
{
progressBar1.Value = 0;
WebClient wC = new WebClient();
wC.DownloadDataCompleted += new DownloadDataCompletedEventHandler(wC_DownloadDataCompleted);
wC.DownloadProgressChanged += new DownloadProgressChangedEventHandler(wC_DownloadProgressChanged);
wC.DownloadDataAsync(new Uri(url));
}

void wC_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
progressBar1.Value = e.ProgressPercentage;
}

void wC_DownloadDataCompleted(object sender, DownloadDataCompletedEventArgs e)
{
Mz(System.Text.Encoding.Unicode.GetString(e.Result));
}

===============================
这段代码就是想让GetPage返回string,而不是通过DownloadDataCompleted重新调用.
因为以前写的,有很多地方使用了诸如 string cont = GetPage("http://e.com/e.txt"); 所以不好改变..
现在改变只是通知一个进度条控件的显示...
...全文
227 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
marvelstack 2007-10-06
  • 打赏
  • 举报
回复
通过注册自定义事件来实现,具体可以参考这里的例子,
http://blog.csdn.net/zhzuo/archive/2004/06/15/22038.aspx
soddyque 2007-09-01
  • 打赏
  • 举报
回复
to hdt:
我这里无法显示。
真相重于对错 2007-08-31
  • 打赏
  • 举报
回复
ms-help://MS.MSDNQTR.2003FEB.2052/cpguide/html/cpovrasynchronousprogrammingoverview.htm

110,534

社区成员

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

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

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