C#多线程文件IO(读取)

was*_*tik 3 c# file-io multithreading filereader threadpool

我们的应用程序需要处理一系列文件,而不是同步执行此功能,我们希望使用多线程将工作负载分配到不同的线程中.

每项工作如下:
1.打开文件以进行只读
2.处理文件中的数据
3.将处理后的数据写入字典

我们想在新线程上执行每个文件的工作?这是可能的,我们应该更好地使用ThreadPool或生成新线程,记住每个"工作"项只需要30ms,但可能需要处理数百个文件.

任何提高效率的想法都值得赞赏.

编辑:目前我们正在利用ThreadPool来处理这个问题.如果我们有500个要处理的文件,我们循环访问文件并使用QueueUserWorkItem将每个"处理工作单元"分配给线程池.

是否适合使用线程池?

sum*_*mer 8

我建议你使用ThreadPool.QueueUserWorkItem(...),在这里,线程由系统和.net框架管理.您与自己的线程池进行网格划分的可能性要高得多.所以我建议你使用.net提供的Threadpool.它非常容易使用,

ThreadPool.QueueUserWorkItem(new WaitCallback(YourMethod), ParameterToBeUsedByMethod); 
Run Code Online (Sandbox Code Playgroud)

YourMethod(object o){ Your Code here... }

欲了解更多信息,请访问http://msdn.microsoft.com/en-us/library/3dasc8as%28VS.80%29.aspx链接

希望这可以帮助