对于一个学校项目,我必须制作一个程序,用户可以在其中选择 1 到 10 个文本文件。然后,程序必须使用多处理器并行性(我假设任务并行库)搜索这些文件以找到一个单词并获得正确的行。
我想过将读取放入 aParallel.For
但我必须避免同时从同一个文件中读取不同的进程。
我怎么能告诉我Parallel.For
这样做?
对于一个学校项目,我必须制作一个程序,用户可以在其中选择 1 到 10 个文本文件。然后,程序必须使用多处理器并行性(我假设任务并行库)搜索这些文件以找到一个单词并获得正确的行。
我想过将读取放入 aParallel.For
但我必须避免同时从同一个文件中读取不同的进程。
我怎么能告诉我Parallel.For
这样做?
通过使用 TPL、Tasks(如果可以使用 .net 4.5,则等待 async),您走在了良好的道路上。
我建议您编写一个从文件读取的包装类,并确保您不会两次读取同一个文件。
您还可以在 .Net 中使用 Thread 类。从 MSDN http://msdn.microsoft.com/en-us/library/aa645740(v=vs.71).aspx查看本教程。
基本上,您将为需要读取的每个文件运行一个线程,然后能够知道每个文件何时完成处理其各自的文件。
编辑:不过,只有当你有非常大的文件时,我才会推荐并行。