多个线程下载不同的文件 那位看看

wzw88486969 2012-02-27 12:23:03
我的思路 可是这样 报错

class LoadFileThread
{
int getDir()
{
//递归调用getfile
if()getDir(path);
else getfile(path);
}
int getfile(char *path)
{
//怎么控制这个线程数量呢
Thread *p=new Thread(this,path);
p->StartLoad();
return 0;
}

void DeleteThread(Thread *p)
{
//一会就报错
delete p;
}

}
//这个类里我调用了createthread函数我没写出来
//他会把StartLoad()放在一个线程函数里 执行的
//也就是 第一个Thread对像就是一个线程
class Thread
{
Thread(LoadFileThread *pt,char *path)
{
pt=pt;
strcat(path,path);
}

StartLoad()
{
//--------------
//Net getFile
//--------------
....................
pt->DeleteThread();
}
private:
char path[100];
LoadFileThread *pt;
}


那位有好的思路 可以分下
我是用网络下载一个文件夹下的所有文件 如果里面是文件夹递归
谢谢!!!
...全文
197 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzw88486969 2012-02-28
  • 打赏
  • 举报
回复
谢谢两位的回复 我现在 看好了两个池对我帮助太大了 虽然我还没有用代码实现他们
Linux下通用线程池的构建
http://www.chinaitpower.com/A/2003-02-23/51035.html
牵着老婆满街逛 VC实现线程池
http://www.cppblog.com/tx7do/archive/2006/04/14/5576.html
wzw88486969 2012-02-27
  • 打赏
  • 举报
回复
好的 谢谢 我去找找
Saleayas 2012-02-27
  • 打赏
  • 举报
回复
到网上去找一个 VC 下的线程池的代码!
Saleayas 2012-02-27
  • 打赏
  • 举报
回复
不是用 Sleep 等。
WaitForSingleObject
wzw88486969 2012-02-27
  • 打赏
  • 举报
回复
我想在全局全10个线程 做一个池 就可 thunder那样的 还没想出来
wzw88486969 2012-02-27
  • 打赏
  • 举报
回复
等了
我还在 delete 前面加了 Sleep(2000);
Saleayas 2012-02-27
  • 打赏
  • 举报
回复
你在 StartLoad 中创建了 Thread 吗?

那么有没有在 delete 之前等待 Thread 结束。
wzw88486969 2012-02-27
  • 打赏
  • 举报
回复
pt->DeleteThread(this);
写的有的地方 没写好
wzw88486969 2012-02-27
  • 打赏
  • 举报
回复
pt->DeleteThread(); // ???
就 把这个去了 就没事 不过 内存 会有问题
Saleayas 2012-02-27
  • 打赏
  • 举报
回复
pt->DeleteThread(); // ???
wzw88486969 2012-02-27
  • 打赏
  • 举报
回复
能编译啊 还运行了一会 就是我觉得 delete太快了 老出错
把那个delete p去了 就可以运行 不过 下载的文件有的不全 太快了
Saleayas 2012-02-27
  • 打赏
  • 举报
回复
程序能编译过吗?
Eleven 2012-02-27
  • 打赏
  • 举报
回复
可以用WININET的CFtpConnect、CFtpFileFind 类相关

15,473

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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