【发布时间】:2010-01-20 21:41:50
【问题描述】:
我正在编写一个需要处理大型文本文件的应用程序(用逗号分隔的几种不同类型的记录 - 我没有权力或倾向于更改数据存储格式)。它读取记录(通常是按顺序读取文件中的所有记录,但并非总是如此),然后将每条记录的数据传递给某些处理。
现在这部分应用程序是单线程的(读取一条记录,处理它,读取下一条记录等)我认为在一个线程中读取队列中的记录并处理可能更有效它们在另一个线程中以小块的形式或可用时。
我不知道如何开始编写类似的程序,包括必要的数据结构或如何正确实现多线程。任何人都可以提供任何指示,或提供其他关于我如何提高性能的建议吗?
【问题讨论】:
-
在 CodeProject 和 Filehelpers.com 上查看这篇文章 here
-
你知道你大部分时间都花在了哪里,阅读还是处理?我假设后者。根据发生的情况,您可能希望考虑对其进行优化。例如,如果您处理对文件或数据库的写入,如果可以的话,最好分批进行。
-
这取决于...我会说 15% 到 40% 的时间都花在了处理上。不需要做很多处理。我当然会尝试进一步优化该阶段,但我知道这个应用程序将从多线程中受益。
标签: c# multithreading data-processing