WinForm大文件Copy的討論

david0620 2008-07-10 10:46:48
我用C#寫了一個WinForm,只要功能是將一個目錄所有的文件Copy到另一個目錄

但是如果碰到大文件時,在"工作管理員"的進程中,看到這個WinForm沒有反應,出現“假死”現象,其實這個WinfORM還是在運行的

我想請問,有什麼方法可以在Copy大量文件時,速度等各方面都是最好的呢?
...全文
198 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
tinalucky 2008-07-10
  • 打赏
  • 举报
回复
用backgroundworker,适合在后台运行耗时任务
david0620 2008-07-10
  • 打赏
  • 举报
回复
我用的是.net1.1
並不是.net2.0
有辦法沒?
jin1002 2008-07-10
  • 打赏
  • 举报
回复
线程处理不错
fsy123456accp 2008-07-10
  • 打赏
  • 举报
回复
顶 楼上那个的兄台 不错的建议
眼里进了砂 2008-07-10
  • 打赏
  • 举报
回复
同步肯定会假死了,异步吧,采用Thread或者backgoundworker都没问题
david0620 2008-07-10
  • 打赏
  • 举报
回复
怎麼樣多線程啊?
rqx110 2008-07-10
  • 打赏
  • 举报
回复
backgroundworker组件
yatobiaf 2008-07-10
  • 打赏
  • 举报
回复
用多线程啊
ericzhangbo1982111 2008-07-10
  • 打赏
  • 举报
回复
线程。
david0620 2008-07-10
  • 打赏
  • 举报
回复
其實我可要在Form_Load中寫:
Thread a = new Thread(new ThreadStart(DoC));
a.Start();
Thread b = new Thread(new ThreadStart(DoC));
b.Start();
Thread c = new Thread(new ThreadStart(DoC));
c.Start();
這樣來執行三個進程,分別執行不同的Copy任務,但是怎麼樣在我的代碼中執行循環复制
private void DoCopy()
{
System.IO.DirectoryInfo _DI = new DirectoryInfo(@"d:\Project");
FileInfo[] _files = _DI.GetFiles();
foreach(FileInfo _file in _files)
{
try
{
_file.CopyTo(@"D\Copy");
}
catch
{
this.listBox1.Items.Add(" the file {0} fail;" + _file.Name);
}
}
}
在這代碼中加入循環复制?怎麼樣加啊???
david0620 2008-07-10
  • 打赏
  • 举报
回复
我的後台有5個Timer控件,定時來執行不同的Copy任務,基本上都是大文件
如果用Thread的話(因為我的是1.1,所以沒有BackupGroundWorker)要怎麼用啊?
會不會Thread與Timer同時執行同一個任務,哪不是會出錯嗎?
我想要Thread又時能夠定時執行這些任務
wwwwpig 2008-07-10
  • 打赏
  • 举报
回复
多线程啊
发表于 2008-07-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ericzhangbo1982111 的回复:]
线程。
[/Quote]
david0620 2008-07-10
  • 打赏
  • 举报
回复
老大,有沒有具體點的例子啊
c11_11_11 2008-07-10
  • 打赏
  • 举报
回复
baidu 搜索 "c# 多线程"
wdgphc 2008-07-10
  • 打赏
  • 举报
回复
自己做一个类似"快车"的类,多线程分块同时copy.
david0620 2008-07-10
  • 打赏
  • 举报
回复
哪如果用Backgroundworker來實現我的哪個功能要怎麼寫?請各位多多幫忙
功能就是把D:\1下面的所有文件COPY到E:\1下面
xu_2007 2008-07-10
  • 打赏
  • 举报
回复
分配一个专门的线程来COPY那个文件,目录下有多少个文件就可以分配多少个线程,然后每个线程负责一个文件,这样应该不会出现要加锁和解锁的问题吧`
wufan110 2008-07-10
  • 打赏
  • 举报
回复
线程,多线程.
只能这样.

110,912

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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