c#线程池的应用问题

hcsunjun 2008-12-22 09:53:19
有这个一个任务,10个文件夹,0,1,2,3,4,5,6,7,8,9,每个文件夹下有一些文件,我想开10个线程,每个线程循环扫描其中的一个文件夹,如A线程就扫描0,主要是针对文件夹下的文件进行处理.试问这样的需求用线程池合适吗,每个文件夹下的文件数目不太固定
...全文
235 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
green3080 2012-04-05
  • 打赏
  • 举报
回复
111
green3080 2012-04-05
  • 打赏
  • 举报
回复
var i=1
green3080 2012-04-05
  • 打赏
  • 举报
回复
12
weiyiVB 2012-03-12
  • 打赏
  • 举报
回复
正在学习线程池
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 cuike519 的回复:]
直接干。。。才10个线程而已。。。

再说了,你这几个线程都在干自己的事情,也不存在重复利用的问题啊,要线程池干嘛?事情想复杂了。。。
[/Quote]

正解,肯定是多线程做,虽然读文件可能是串行的,但处理文件的数据是并发的。
直接起10个线程while(true)就可以了。
hcsunjun 2008-12-22
  • 打赏
  • 举报
回复
这个主要是需要要求性能的要求,当2000人同时往这个主文件夹写文件时,要求很快能处理完,因为有可能又有几千个文件写进来,一条条遍历,可能需要时间较长,因此把这些文件先分放到10个文件夹,由10个线程来处理
much0726 2008-12-22
  • 打赏
  • 举报
回复
问题想复杂了.
wuyq11 2008-12-22
  • 打赏
  • 举报
回复
minioreo 2008-12-22
  • 打赏
  • 举报
回复
没必要吧 直接遍历就好 看不出有什么并行需求啊
cuike519 2008-12-22
  • 打赏
  • 举报
回复
直接干。。。才10个线程而已。。。

再说了,你这几个线程都在干自己的事情,也不存在重复利用的问题啊,要线程池干嘛?事情想复杂了。。。

sxmonsy 2008-12-22
  • 打赏
  • 举报
回复
其实这个不用线程就可以完成.
shiling_02404 2008-12-22
  • 打赏
  • 举报
回复
帮顶....
hcsunjun 2008-12-22
  • 打赏
  • 举报
回复
再说明一下,就是这10个文件夹下的文件,会不断增加,线程处理完一个,就会把这个文件删除,处理完一遍后,再回来再扫描,再接着处理
长沙三毛 2008-12-22
  • 打赏
  • 举报
回复
使用线程操作是不错的做法,线程池ThreadPool自动管理线程,并有一定的优化。
soaringbird 2008-12-22
  • 打赏
  • 举报
回复
对文件IO用多线程不太合适
fengyecsdn 2008-12-22
  • 打赏
  • 举报
回复
完全没必要。。 因为对硬盘的读写虽然慢。。但是除非是对应多个硬盘,否测没意义。 硬盘的操作是队列阻塞的。。其他线程只能等待一个操作完成以后才可以继续。。
其实 一个后台线程就可以完成全部的硬盘扫描动作。。一旦扫描出其他的东西,就用事件提交给其他业务线程,,,
dayizhixiaotutu 2008-12-22
  • 打赏
  • 举报
回复
帮顶 偶觉得可以
HDNGO 2008-12-22
  • 打赏
  • 举报
回复
咦~~这个有意思~帮顶看看~
zt_100094 2008-12-22
  • 打赏
  • 举报
回复
完全没必要。。 因为对硬盘的读写虽然慢。。但是除非是对应多个硬盘,否测没意义。 硬盘的操作是队列阻塞的。。其他线程只能等待一个操作完成以后才可以继续。。
其实 一个后台线程就可以完成全部的硬盘扫描动作。。一旦扫描出其他的东西,就用事件提交给其他业务线程,,,
qiqundelang 2008-12-22
  • 打赏
  • 举报
回复
如果是学习线程的话还是有必要的

110,534

社区成员

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

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

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