Разница между заданием и асинхронностью

C # предоставляет два способа создания асинхронных методов:

Способ 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();
}

Оба вышеупомянутых метода являются асинхронными и достигают того же самого. Итак, когда я должен выбрать один метод над другим? Есть ли какие-либо рекомендации или преимущества использования одного над другим?

Ответы на вопрос(2)

Ваш ответ на вопрос