| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 604 人关注过本帖
标题:新手请教,关于异步处理的程序,初次发帖,分少,请谅解!
只看楼主 加入收藏
hmqr
Rank: 2
等 级:论坛游民
帖 子:26
专家分:15
注 册:2010-3-2
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:5 
新手请教,关于异步处理的程序,初次发帖,分少,请谅解!
最近在编写一个程序,主要实现了从多个Ftp站点自动下载数据,程序结构如下:
Private void btnStartClicked()
{
    For()
    {
        //代码多,不一一表示了,主要是对每个站进行遍历,实现每个站数据的下载
        //其中调用了下面这个函数,这个函数实现单个站的数据下载。
        downSingleSite(string [] siteInfo);
}
}

Private void downSingleSite(string [] siteInfo)
{
/*这个函数先根据提供的站点控制信息访问网络,获取下载文件的信息,并按条件进行筛选,获取需要下载的文件信息并存入fileInfoList中。
Foreach(string singleFile in fileInfoList)
{
    启动一个线程执行数据下载功能;
}
//如果有10个文件需要下载,那么就启动了10个线程进行下载。
    While()   //用于对这几个线程执行是否完成进行判断.
    {
        如果没完成
Thread.sleep(3000);
}
}
在以上程序中,我的程序能正常下载数据,但是由于在窗口服务线程中执行了这一数据下载过程,在这一服务未完成之前,其他窗口消息无法得到响应因此,当单击窗口界面是,出现程序无响应的显示,,而我在程序中使用了sleep()是程序睡眠,但仍然没有效果,不知是何原因。请各位高手不吝赐教,我该如何改变我的程序结构,请稍微详细一点,我刚入门,知识还比较欠缺。
搜索更多相关主题的帖子: 异步 发帖 
2010-07-10 13:14
hmqr
Rank: 2
等 级:论坛游民
帖 子:26
专家分:15
注 册:2010-3-2
收藏
得分:0 
怎么没人指教,自己先顶一下吧
2010-07-10 13:26
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:5 
请参见MSDN:
BackgroundWorker

飘过~~
2010-07-10 14:20
hmqr
Rank: 2
等 级:论坛游民
帖 子:26
专家分:15
注 册:2010-3-2
收藏
得分:0 
谢谢版主!,正在看,应该能解决了
2010-07-10 16:25
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
不客气。BackgroundWorker 也相当于重新开的线程,让界面不会再处于假死状态,而且它也可以接收各种各样的返回值。

飘过~~
2010-07-10 17:10
快速回复:新手请教,关于异步处理的程序,初次发帖,分少,请谅解!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024134 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved