程序运行后开启1个主控线程和n个任务线程主控线程读取一个下载配置文件(假设只有下载结束标志 下载数目),控制下载状态
任务线程是每个下载开启一个线程说明:
(在下载过程中这个配置文件用户是随时可以修改的,所以要用一个线程不断的监控它比如结束标志为停止下载,则停止所有的下载线程;数目增加了,则需要再开启新的下载线程)现在我有一个线程类(启动、停止、恢复、暂停、设置优先级、等方法)具体如何用这个线程去完成上述的任务?请高手祥解!

解决方案 »

  1.   


    恩,我现在不知道怎么使用已有的线程类CMyTherd,还有一个CMyTask类,如何通过线程类管理任务类
    是把任务写到线程里,还是通过对象实现?
      

  2.   

    主控线程 通过线程消息吧CMyTask类发到工作线程,工作线程下载完毕 通过消息把结果告诉主控线程。
    完毕!
      

  3.   

    用wait-signal操作,主线程给接收线程发event,否则让接收线程一直wait
    或者直接在主线程里管理接收线程,开始suspend,哪个接收唤醒了哪个就resume
      

  4.   

    主控线程……
    [/Quote]"主控线程 通过线程消息吧CMyTask类发到工作线程"什么意思?消息怎么发类?
      

  5.   


    !!!谢谢大家我现在不知道怎么使用已有的线程类CMyTherd,还有一个CMyTask类,如何通过线程类管理任务类
    是把任务写到线程里,还是通过对象实现?
      

  6.   

    实现的方法很多,其实多线程的管理最灵活的是采用消息,可以参考MFC的cwinthread类。简单的用法可以采用事件, 就是在你的线程类里可以有两个成员,一个是事件,一个是操作任务。线程类一直等待waitforsingleobject(event)你可以这样操作线程类的操作任务赋值,然后set event.此时线程响应到消息,读取操作任务,并执行任务。。
      

  7.   


    "主控线程 通过线程消息吧CMyTask类发到工作线程"什么意思?消息怎么发类?
    [/Quote]
    google 'postmessage'
      

  8.   

    唉,哥愚阿!莫见笑这样是不是行啊:
    在CMyTask中定义一个CMyThread的成员
    CMyTask
    {   CMyThread  thd;
         .......
        void MyDownLoad(...);
    }

    CMyTask::MyDwonLoad(...)
    {
       thd.StartThread();
       .....
       .....
       thd.StopThread();
    }然后用一个CMyManage类,这个类去管理CMyTask中的任务,等待高人!!!