Я пытаюсь использовать TPL внутри цикла while, и мне нужно передать задаче некоторые значения, которые затем изменяются в цикле.Например, здесь показан пример с индексом, который увеличивается (обязательно после строки, в которой запрашивается создание задачи):
int index = 0;
Task[] tasks;
while(/*condition*/)
{
tasks[index] = Task.Factory.StartNew(() => DoJob(index));
index++;
}
Но, конечно, это не работает, поскольку значение индексаможет быть увеличено до начала задачи.Возможное решение может состоять в том, чтобы передать также WaitHandle, который ожидает до увеличения индекса, и это должно быть передано в метод DoJob, но это не кажется мне действительно хорошим решением.Любая другая идея?