У меня есть несколько теоретических вопросов по использованию задач, которые я бы хотел разъяснить для себя.
В чём смысл использования асинхронных методов? Правильный асинхронный метод использует внутри себя один или несколько операторов await, которые позволяют дождаться завершения операции не блокируя текущий поток. Как только такой оператор встречается, соответствующая операция запускается асинхронно, а поток, в котором выполнялся метод возвращается в пул потоков. После этого он может приступить к выполнению другой задачи, которая находится в локальной очереди этого потока, а продолжение исходного метода может быть выполнено вообще в любом другом свободном потоке. В чём смысл выполнять асинхронную операцию в другом потоке? Операция в любом случае должна быть выполнена, почему бы исходному потоку не сделать этого? В случае await Task.Delay преимущество на лицо: чтобы поток не простаивал без дела, он может заняться выполнением другой задачи, а потом, например, вернуться к выполнению исходного метода. К какого типа операциям в итоге приводят все await (внутри каждого асинхронного метода есть оператор await, который асинхронно ожидает другой асинхронный метод, который так же содержит оператор(ы) await и так далее), что поток блокируется?
Почему не возможно задать асинхронному методу параметры создания задачи? Может быть мне важно, чтобы задача, созданная в результате вызова асинхронного метода, выполнялась сразу в отдельном потоке, а не ожидала пока какой-нибудь поток из пула освободится?
Processв таком случае зависит от выполнения кода на стороне клиента. – D .Stark Sep 19 '22 at 20:55Process, обрабатывающего соединения, будут выполняться в одном потоке (при условии что до начала цикла приёма входящих соединений существовал 1 поток), ведь задача запускается с параметрами по-умолчанию, то есть созданные задачи не будут порождать новые потоки. Это верно? – D .Stark Sep 19 '22 at 21:18ConfigureAwait. Уже оформил отдельный вопрос про блокировки, но оставшиеся 3 вопроса относятся к одной проблеме, разве нет? – D .Stark Sep 19 '22 at 22:07