Может кто-нибудь, пожалуйста, будьте любезны, чтобы подтвердить, правильно ли я понял ключевое слово Async? (Использование версии 3 CTP)
До сих пор я выяснил, что вставка ключевого слова 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");
VS
(new POP3Connector(
"mail.server.com", txtUsername.Text, txtPassword.Text ).Connect())
.ContinueWith((success) =>
MessageBox.Show(success.Result ? "Logged In" : "Wrong password"));