С# предоставляет два способа создания асинхронных методов:
Метод 1:
static Task<string> MyAsyncTPL() {
Task<string> result = PerformWork();
return result.ContinueWith(t => MyContinuation());
}
Метод 2:
static async Task<string> MyAsync() {
string result = await PerformWork();
return MyContinuation();
}
Оба вышеуказанных метода являются асинхронными и реализуют одно и то же. Итак, когда я должен выбрать один метод над другим? Существуют ли какие-либо рекомендации или преимущества использования одного над другим?