На самом деле, это тот же вопрос, что и этот пост:
Как я могу убедиться, что мои запросы LINQ выполняются при вызове в моем DAL, а не с задержкой?
Но так как он не объяснил, почему он этого хочет, вопрос, похоже, прошел немного. Здесь моя аналогичная, но лучше объясненная проблема:
У меня есть несколько потоков в двух типах (игнорируя потоки пользовательского интерфейса на мгновение). Там тип потока данных "сбор данных" и тип потока "вычислений". Потоки сбора данных медленны. Там довольно много данных, которые нужно просеять из разных мест. Потоки вычислений сравнительно быстрые. Модель проектирования до этого момента заключается в том, чтобы отправлять потоки сбора данных, чтобы найти данные, и когда они будут полностью переданы данные для вычислений.
Когда я закодировал сбор данных в Linq, я запустил часть этой медленности обратно в мои потоки вычислений. Теперь есть элементы данных, которые полностью не разрешаются до тех пор, пока они не используются во время вычислений, и что проблема.
Я хочу заставить Linq завершить работу в данный момент (конец инструкции? конец метода?), пожалуйста, закончите, пропустите "вызов метода", чтобы я знал, что не буду платить за это позже, Добавление ".ToList()" в конец Linq 1. неудобно, и 2. чувствует себя как бокс, что-то, что скоро будет распаковано в другой поток.