Cоздаётся многопоточное серверное приложение. Существует цикл в основном потоке, который принимает входящие соединения. Далее каждое соединение должно обрабатывается в отдельном потоке методом Process, который содержит множество вызовов асинхронных методов, читающих или записывающих данные в Stream, представляющий соединение. Имеет ли смысл делать метод Process асинхронным и запускать обработку каждого соединения отдельной задачей? Как минимум это удобно в плане написания кода, ведь вместо использования GetAwaiter().GetResult() можно писать просто await. Так же могут быть задержки связанные с ожиданием получения данных от клиента, которые не будут блокировать поток и он может обрабатывать другие соединения.
Однако, все вызовы асинхронного метода Process, обрабатывающего соединения, будут выполняться в одном потоке (при условии что до начала цикла приёма входящих соединений существовал 1 поток), ведь задача запускается с параметрами по-умолчанию, то есть созданные задачи не будут порождать новые потоки. Верно ли это и как исправить ситуацию?
Processасинхронным и будут ли все задачи выполняться в одном потоке? – D .Stark Sep 20 '22 at 08:41System.Diagnostics.Processвообще непонятно при чем тут. Отдельный процесс не может работать в одном потоке с текущим. Операционная система запускает каждый новый процесс в одтельном потоке, и это не изменить не переписав саму операционную систему. – aepot Sep 20 '22 at 11:07Process- название метода, обрабатывающего соединения - это есть в вопросе. – D .Stark Sep 20 '22 at 11:14Processвам не хватает, чтобы дать ответ? – D .Stark Sep 20 '22 at 11:15Processэто класс в .NET, я советую переименовать метод, потому что это сбивает с толку. Чтобы дать ответ, надо понять вопрос, я не понимаю. Какой-то поток сознания. Всё смешалось, потоки, асинхронность, каша какая-то. А я вам трижды уже писал, чтобы перестали путать асинхронность и многопоточку. Хотите конкретный ответ, задайте конкретный вопрос. – aepot Sep 21 '22 at 05:32Process- название метода и спросил какую информацию об этом методе вы хотели бы услышать. А разницу между 2 этими понятиями я понял в ходе нашего обсуждения ранее. – D .Stark Sep 21 '22 at 15:59