• 5781阅读
  • 1回复

[提问]关于多线程下载获取下载进度的问题 [复制链接]

上一主题 下一主题
离线83888788
 
只看楼主 正序阅读 楼主  发表于: 2011-03-06
写了一个程序

  1. class Mission:public QObject
  2. {
  3. Q_OBJECT
  4. ......
  5. ......
  6. private:
  7. QList<PieceThread *> pieceThreadList;
  8. ......
  9. ......
  10. }; //这是一个下载任务类,维护一个下载线程链表
  11. class PieceThread :public QThread
  12. {
  13. Q_OBJECT
  14. ......
  15. ......
  16. protected:
  17. void run();
  18. private:
  19. const quint64 beginPos; //下载起始位置
  20. const quint64 endPos; //下载终止位置
  21. quint64 workingPos; //正在写入文件的位置 (用于记录在哪里写入文件)
  22. QFile *file;
  23. QNetworkReply *reply;
  24. QMutex mutex;
  25. ......
  26. ......
  27. }; //这是下载的线程类,下载文件的一部分


头文件给的不太全,如果大哥大姐们需要详细的话我可以补上

现在的问题是,我如何把整个Mission的下载进度(即若干个PieceThread的进度和)获取到并返回给主程序,
(因为主程序会有若干个进度条来反映下载的情况)

小弟尝试过通过reply发送的
voiddownloadProgress ( qint64 bytesReceived, qint64 bytesTotal )

信号,但是感觉这个信号发送过于频繁,怕影响程序速度,求大哥大姐们给个思路!
谢谢!

离线起点0615

只看该作者 1楼 发表于: 2014-03-16
源码?
快速回复
限100 字节
 
上一个 下一个