加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 19:35:45 所属栏目:百科 来源:网络整理
导读:我们的应用程序需要处理一系列文件,而不是同步执行此功能,我们希望使用多线程将工作负载分配到不同的线程中. 每项工作是: 1.打开文件以供只读使用 2.处理文件中的数据 3.将处理后的数据写入字典 我们想在新线程上执行每个文件的工作? 这是可能的,我们应该
我们的应用程序需要处理一系列文件,而不是同步执行此功能,我们希望使用多线程将工作负载分配到不同的线程中.

每项工作是:
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

希望这可以帮助

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读