me gustaría recorrer un directorio en el disco duro y buscar a través de todos los archivos para una cadena de búsqueda específica. Esto suena como el candidato perfecto para algo que podría (o debería) hacerse en paralelo ya que el IO es bastante lento.tareas de la Biblioteca paralelo para recorrido de directorio
Tradicionalmente, escribía una función recursiva para encontrar y procesar todos los archivos en el directorio actual y luego recurse en todos los directorios en ese directorio. Me pregunto cómo puedo modificar esto para ser más paralelo. Al principio simplemente Modificado:
foreach (string directory in directories) { ... }
a
Parallel.ForEach(directories, (directory) => { ... })
pero siento que esto podría crear demasiadas tareas y obtener sí en nudos, sobre todo cuando se trata de enviar de nuevo en un hilo de interfaz de usuario. También siento que el número de tareas es impredecible y que esta podría no ser una forma eficiente de paralizar (¿es una palabra?) Esta tarea.
Alguien ha hecho con éxito algo como esto antes? ¿Qué consejo tienes al hacerlo?
1 Me alegro de Jon disipó la teoría porque yo también estaba pensando que este sería un buen candidato. Parece que Microsoft ni siquiera puede hacerlo correctamente: http://msdn.microsoft.com/en-us/library/ff477033.aspx -> lea el comentario en la parte inferior :) –