+1,高手
表示怀疑,多线程拷贝文件提高IO如果是磁阵,个人觉得多线程提高IO效率是肯定的。 

解决方案 »

  1.   

    n个线程,一个文件就分成n段,每个线程读取对应的那段,这样就提高效率了....
    LZ说中途取消..可以将文件读到内存以后,设置标记,下次继续读取..
      

  2.   

    文件单线程一次性读入IO,先算md5,然后分割成n段(线程个数),在对应需要输出的目录先创建个等大的文件,然后多线程填充,填充完毕内容重新算下MD5并比对。该方法可以允许用户暂停取消,但不允许中途更改线程数。说句题外话,如果LZ不是用来做文件传输而只是用来拷贝的话毫无意义。
      

  3.   

    中途取消,要保证目标文件的正确性与取消时的安全退出?正确性是什么?中途取消了,没复制完的目标文件就删除,windows系统就是这么做的。
    安全退出。对原文件只读操作,不会破坏原文件,每个线程在循环拷贝过程中接收到退出通知后退出,而不是terminatethread,就安全。
      

  4.   

    用IO完成端口,进行异步IO,一个线程不会比多线程慢
      

  5.   

    赞成用IO完成端口,进行异步IO,详细可参考《windows 核心编程》