Почему шаблоны сервисной ткани используют Thread.slept вместо задачи. Delay?C#

Место общения программистов C#
Ответить
Anonymous
 Почему шаблоны сервисной ткани используют Thread.slept вместо задачи. Delay?

Сообщение Anonymous »

Когда я создаю новое приложение для сервисной ткани с помощью сервиса Core ASP.NET без сохранения, почему эта строка кода в основном методе службы? < /p>

Код: Выделить всё

// prevents this host process from terminating so services keep running
Thread.Sleep(Timeout.Infinite)
< /code>
Очевидно, что, как говорится в комментировании кода выше фактического кода, это предотвращение завершения процесса хоста. Но почему бы не заставить основной метод вернуть Async Task 
вместо void , чтобы иметь возможность использовать waw wait task.delay () ?
Из моего понимания последнее было бы лучше, потому что основной поток будет возвращен в пул потоков, чтобы сделать что -то полезно Основной метод не мог вернуть асинхронную задачу .

Код: Выделить всё

ServiceRuntime.RegisterServiceAsync("FirstStatelessApiType",
context => new FirstStatelessApi(context)).GetAwaiter().GetResult();
< /code>
(GetAwaiter().GetResult()
также не было бы неизвестным, если бы метод просто вернул бы асинхронную задачу , как его можно было бы ожидать)
edit :
Я уже проверил переключение с void main async main и использует задачу. Thread.sleep и не видел разницы в поведении моей службы (конечные точки API все еще работали и работали, как и ожидалось)

Подробнее здесь: https://stackoverflow.com/questions/755 ... task-delay
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»