Есть ли какая-нибудь ловушка? не ожидает Task в примере метода PassDoSomethingWoAsync ниже?
Я предполагаю, что если мне нужно просто передать «результат» одного асинхронного метода без какой-либо дальнейшей обработки, как в Task PassDoSomethingWoAsync(string message) => DoSomethingAsync(message), Task лучше возвращать без async/
Код: Выделить всё
awaitКлючевые слова Код: Выделить всё
public class MyEngine
{
public async Task PassDoSomethingAsync(string message) => await DoSomethingAsync(message).ConfigureAwait(false); // awaited
public Task PassDoSomethingWoAsync(string message) => DoSomethingAsync(message); // not awaited
public async Task DoSomethingAsync(string message)
{
await Task.Delay(1000);
Console.WriteLine($"DoSomethingAsync: {message}");
}
}
Код: Выделить всё
Console.WriteLine("App started");
var engine = new MyEngine();
await engine.PassDoSomethingWoAsync("Without Async");
await engine.PassDoSomethingAsync("Async");
Console.WriteLine("App finished");
Код: Выделить всё
App started
DoSomethingAsync: Without Async
DoSomethingAsync: Async
Подробнее здесь: https://stackoverflow.com/questions/791 ... -as-result
Мобильная версия