Будет ли BackgroundService всегда работать в новом потоке - PullRequest
1 голос
/ 02 ноября 2019

Итак, в MSDN для ASP.Net Core показано, как создавать фоновые задачи с размещенными службами. Есть даже специальный абзац, который объясняет, как вы можете создать фоновую очередь.

Теперь мой вопрос: будет ли метод ExecuteAsync уже запущен в своем собственном потоке, или мне сначала нужно вызвать Task.Run?

1 Ответ

0 голосов
/ 02 ноября 2019

С Асинхронное программирование

Для кода, связанного с вводом / выводом, вы ожидаете операцию, которая возвращает задачу или задачу внутри асинхронного метода.

Для кода с привязкой к процессору вы ожидаете операцию, которая запускается в фоновом потоке с помощью метода Task.Run.

Так что, если ваш ExecuteAsync метод имеет I / O-bound (выглядит как строка, это связано с вводом / выводом по его имени), тогда вам не нужно вызывать Task.Run

Но когда метод привязан к процессору (т.е. ваш код выполняет вычисления), тогда вы должны вызвать Task.Run для запуска в фоновом режиме

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...