Paralelo a cada ejecución ordenada

Estoy tratando de ejecutar funciones paralelas en una lista de objetos usando el nuevo C # 4.0Parallel.ForEach función. Este es un proceso de mantenimiento muy largo. Me gustaría hacer que se ejecute en el orden de la lista para que pueda detener y continuar la ejecución en el punto anterior. ¿Cómo hago esto?

Aquí hay un ejemplo. Tengo una lista de objetos:a1 to a100. Este es el orden actual:

a1, a51, a2, a52, a3, a53...

Quiero esta orden:

a1, a2, a3, a4...

Estoy de acuerdo con que algunos objetos estén fuera de servicio, pero siempre que pueda encontrar un punto en la lista donde pueda decir que todos los objetos anteriores a este punto se ejecutaron. Leí el documento técnico de programación paralela csharp y no vi nada al respecto. No hay una configuración para esto en elParallelOptions clase.

Respuestas a la pregunta(6)

Su respuesta a la pregunta