Главная /
Параллельное программирование с помощью языка C# /
Каким образом можно распараллелить следующий LINQ-запрос? var q = data.Select(item => f(item)).Where(o => p(o));
Каким образом можно распараллелить следующий LINQ
-запрос?
var q = data.Select(item => f(item)).Where(o => p(o));
вопрос
Правильный ответ:
модификация запроса не требуется. Обработка запросов в
C#
4.0 автоматически распараллеливается.
добавить модификатор
AsParallel
() после источника данных
добавить модификатор
AsParallel
() в конец запроса
использовать параметр
ParallelOptions
при выполнении запроса Select
использовать параметр
ParallelOptions
при выполнении запроса в методе ToList
() или ToArray
() Сложность вопроса
72
Сложность курса: Параллельное программирование с помощью языка C#
57
Оценить вопрос
Комментарии:
Аноним
Гранд мерси за подсказками по интуит.
12 апр 2019
Аноним
спасибо за ответ
19 июн 2017
Другие ответы на вопросы из темы суперкомпьютерные технологии интуит.
- # Какие операторы выполняются последовательно в PLINQ-запросах
- # Следующий фрагмент приводит к действиям планировщика: static void Main() { Thread thread = new Thread(() => { f1(); Task t = Task.Factory.StartNew(() => f2()); }); thread.Start(); }
- # В родительской задаче tParent запускаются поочередно вложенные задачи tChild1 и tChild2. При каких условиях вложенная задача tChild1 может успеть завершиться раньше, чем задача tChild2?
- # Какие средства синхронизации можно использовать для организации параллельного доступа нескольких потоков к ресурсу?
- # Статус задачи WaitingForActivation соответствует ситуации: