Я пытаюсь понять, как параллелизм может работать с использованием PLINQ, учитывая отложенное выполнение. Вот простой пример.
string[] words = { "believe", "receipt", "relief", "field" };
bool result = words.AsParallel().Any(w => w.Contains("ei"));
С LINQ я ожидаю, что выполнение достигнет значения «получения» и вернет true, не выполняя запрос для остальных значений.
Если мы делаем это параллельно, оценка «облегчения» может начаться до того, как вернется результат «получения». Но как только запрос узнает, что «получение» приведет к истинному результату, будут ли немедленно выполняться другие потоки?
В моем случае это важно, потому что "любой" тест может быть очень дорогим, а хотелось бы высвободить процессоры для выполнения других задач.