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

C#多线程文件IO(读取),第1张

概述我们的应用程序需要处理一系列文件,而不是同步执行此功能,我们希望使用多线程将工作负载分配到不同的线程中. 每项工作是: 1.打开文件以供只读使用 2.处理文件中的数据 3.将处理后的数据写入字典 我们想在新线程上执行每个文件的工作? 这是可能的,我们应该更好地使用ThreadPool或生成新线程,记住每个“工作”项只需要30ms,但可能需要处理数百个文件. 任何提高效率的想法都值得赞赏. 编辑:目 我们的应用程序需要处理一系列文件,而不是同步执行此功能,我们希望使用多线程将工作负载分配到不同的线程中.

每项工作是:
1.打开文件以供只读使用
2.处理文件中的数据
3.将处理后的数据写入字典

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

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

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

是否适合使用线程池?

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

ThreadPool.QueueUserWorkItem(new WaitCallback(YourMethod),ParameterToBeUsedByMethod);

YourMethod(对象o){
你的代码在这里……
}

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

希望这可以帮助

总结

以上是内存溢出为你收集整理的C#多线程文件IO(读取)全部内容,希望文章能够帮你解决C#多线程文件IO(读取)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1224369.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存