C#中如何使用多线程操作文件

现在的问题是,我需要对一个listbox中已经列出来的文件进行查询操作。文件很多,可能有几百上千个,要进行StreamReader的读取操作。我会使用多线程,但是文件列表... 现在的问题是,我需要对一个listbox中已经列出来的文件进行查询操作。

文件很多,可能有几百上千个,要进行StreamReader的读取操作。

我会使用多线程,但是文件列表列表循环,一个文件一个线程的那种,不会控制线程数,比如说我只需要使用10个线程来操作这些文件,怎么做!

好像和线程池有关,但代码怎么写呢?请指点
知道和线程池有关,但不知道怎么写啊,能否给点代码!

再追加50分,希望高手给写个例程。

---------------------------------------

新手,刚学会用线程,还不会用线程池,呵呵,所以想请教各位高手。
展开
 我来答
dialysiser
2009-06-14
知道答主
回答量:18
采纳率:0%
帮助的人:0
展开全部
相信你现在的处理方法是这样的

listBox2.Items.Clear();
for (int i = 0; i < listBox1.Items.Count; i++)
{
Thread th = new Thread(ss);
th.Start(listBox1.Items[i].ToString());
}

基本的都不用变,这里启动线程的代码改成下面的就可以了

listBox2.Items.Clear();
for (int i = 0; i < listBox1.Items.Count; i++)
{
ThreadPool.QueueUserWorkItem(new WaitCallback(ss), listBox1.Items[i].ToString());
}
这样就可以使用线程池了,经过测试,当listbox中的项目很多时候,前面的一种方法是启用非常多的线程,速度反而慢多了,而用线程池速度则非常的快
0o小天o0
2009-06-14 · TA获得超过174个赞
知道小有建树答主
回答量:225
采纳率:0%
帮助的人:140万
展开全部
?
每个线程单独用个类处理单个文件

线程池不是比那个简单吗?

0.0
神奇
我一度认为线程池要简单
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
假丨啊07
2009-06-14 · TA获得超过117个赞
知道答主
回答量:80
采纳率:0%
帮助的人:0
展开全部
使用线程池的ThreadPool.SetMaxThreads方法可设置活动线程数目
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sizheng
2012-07-14
知道答主
回答量:16
采纳率:0%
帮助的人:1.4万
展开全部
09年的问题了,现在是2012年,用.NET4.0里面的Parallel.For,很容易就解决啦~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ASDFGHJKLHJKBN
2009-06-14
知道答主
回答量:36
采纳率:0%
帮助的人:0
展开全部
用线程池
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式