#c# #task-parallel-library
#c# #задача-параллельная-библиотека
Вопрос:
В Task.Factory.ContinueWhenAll(System.Threading.Tasks.Task[] tasks, Action<System.Threading.Tasks.Task[]> continuationAction)
документации не указано, что порядок элементов в continuationAction
will будет идентичным и соответствует порядку элементов во tasks
входном параметре. Возможно ли доказать / опровергнуть это (помимо рассмотрения эмпирических результатов)?
Комментарии:
1. referencesource.microsoft.com/#mscorlib/system/threading/tasks/…
2. Документация может лгать или быстро устаревать. Исходный код может быть неправильно понят довольно легко из-за его сложности. Эксперименты могут подтвердить или опровергнуть ваш тезис. Кстати, да, это сохранит порядок.
3. @user80 Что именно вы ищете?
Ответ №1:
Это деталь реализации, которая может быть изменена. Что бы вы ни доказывали / опровергали, это будет зависеть от конкретной версии .Чистый и на определенном оборудовании. Нет гарантии, что порядок не изменится в будущем или даже на другой платформе. Если порядок не задокументирован, вы не должны предполагать его. Гораздо лучше убедиться, что вы можете идентифицировать свои задачи и сортировать их на основе этого идентификатора для ваших целей.
Комментарии:
1. Ник — это то, о чем я тоже подумал, поскольку порядок сортировки явно не указан в спецификации, лучше не полагаться на него. Спасибо.