3

对于一个学校项目,我必须制作一个程序,用户可以在其中选择 1 到 10 个文本文件。然后,程序必须使用多处理器并行性(我假设任务并行库)搜索这些文件以找到一个单词并获得正确的行。

我想过将读取放入 aParallel.For但我必须避免同时从同一个文件中读取不同的进程。

我怎么能告诉我Parallel.For这样做?

4

3 回答 3

4

通过使用 TPL、Tasks(如果可以使用 .net 4.5,则等待 async),您走在了良好的道路上。

  1. 您可以使用一个主线程来执行逐行读取。
  2. 您将行存储在集合中
  3. 然后您可以使用 TPL 执行模式搜索操作。
于 2012-11-29T13:35:23.273 回答
0

我建议您编写一个从文件读取的包装类,并确保您不会两次读取同一个文件。

于 2012-11-29T13:59:52.350 回答
0

您还可以在 .Net 中使用 Thread 类。从 MSDN http://msdn.microsoft.com/en-us/library/aa645740(v=vs.71).aspx查看本教程。

基本上,您将为需要读取的每个文件运行一个线程,然后能够知道每个文件何时完成处理其各自的文件。

编辑:不过,只有当你有非常大的文件时,我才会推荐并行。

于 2012-11-29T13:38:20.697 回答