Является ли Async await ключевым словом, эквивалентным лямбде ContinueWith?
Может, кто-нибудь проявит любезность, чтобы подтвердить, правильно ли я понял ключевое слово Async await? (Используя версию 3 ОСАГО)
До сих пор я выяснил, что вставка ключевого слова await перед вызовом метода, по существу, делает 2 вещи: A. Он создает немедленный возврат и B. Он создает «продолжение», которое вызывается после завершения вызова асинхронного метода. В любом случае продолжение является остатком блока кода для метода.
Так что меня интересует, являются ли эти два бита кода технически эквивалентными, и если да, то означает ли это, что ключевое слово await идентично созданию ContinueWith Lambda (т. Е. Это, по сути, ярлык компилятора для одного)? Если нет, в чем различия?
bool Success =
await new POP3Connector(
"mail.server.com", txtUsername.Text, txtPassword.Text).Connect();
// At this point the method will return and following code will
// only be invoked when the operation is complete(?)
MessageBox.Show(Success ? "Logged In" : "Wrong password");
В.С.
(new POP3Connector(
"mail.server.com", txtUsername.Text, txtPassword.Text ).Connect())
.ContinueWith((success) =>
MessageBox.Show(success.Result ? "Logged In" : "Wrong password"));