По каким сценариям можно использовать
public async Task AsyncMethod(int num)
вместо
public async void AsyncMethod(int num)
Единственный сценарий, который я могу придумать, - это если вам нужна задача, чтобы отслеживать ее прогресс.
Кроме того, в следующем методе ненужны ли ключевые слова async и await?
public static async void AsyncMethod2(int num)
{
await Task.Factory.StartNew(() => Thread.Sleep(num));
}
Thread.Sleep
с вашими задачами, вы должны await Task.Delay(num)
вместо этого
Task.Delay
не в этом, так Task.AsyncDelay
как все методы в задании являются асинхронными
async void
вместо этого async Task
. Сбой метода из-за того, что он использовал объект контекста Entity Framework, объявленный как член контроллера, был удален до завершения выполнения метода. Фреймворк располагал контроллер до завершения его метода. Я изменил метод асинхронной задачи, и это сработало.
Foo()
стал быFooAsync()
.