Parallèle. Pour chaque exécution ordonnée

Je suis en train d'exécuter des fonctions parallèles sur une liste d'objets à l'aide de la nouvelle C# 4.0 Parallel.ForEach fonction. C'est un très long processus de maintenance. Je voudrais faire exécuter dans l'ordre de la liste, de sorte que je peux arrêter et de continuer l'exécution dans le point précédent. Comment dois-je faire?

Ici est un exemple. J'ai une liste d'objets: a1 to a100. C'est l'ordre actuel:

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

Je veux cet ordre:

a1, a2, a3, a4...

Je suis OK avec certains objets en cours d'exécution hors de l'ordre, mais aussi longtemps que je peux trouver un point dans la liste où je peux dire que tous les objets avant de ce point, ont été exécutés. J'ai lu la programmation parallèle csharp livre blanc et n'ai rien vu à ce sujet. Il n'y a pas un réglage dans le ParallelOptions classe.

source d'informationauteur Jeff Z