Visual Basic Improvements in Visual Studio 11: Listing 2.

Using Async and Await with the asynchronous GetAsync method.

 Private Async Sub UpdateWebControlAsync(webPageURL As String, wc As WebBrowser)
  'Simple method to display web pages on a windows form
  'Note Await inside Try block
  Try
    wc.DocumentText = ""

    'Using asynchrounous GetAsync method rather than synchronous Get() method
    'Execution is suspended by Await modifier until GetAsync() returns
    Dim response = Await New System.Net.Http.HttpClient().GetAsync(New System.Uri(webPageURL))

    'Asynch method has completed and execution resumed
    Dim pageHTML = response.Content.ReadAsString
    wc.Document.Write(pageHTML)
  Catch ex As Exception
  Dim msg = "Exception: {0}" & vbCrLf & vbCrLf & "{1}"
    MessageBox.Show(String.Format(msg, ex.Message, ex.InnerException.Message))
    End Try
  Return
End Sub  

About the Author

Joe Kunk is a Microsoft MVP in Visual Basic, three-time president of the Greater Lansing User Group for .NET, and developer for Dart Container Corporation of Mason, Michigan. He's been developing software for over 30 years and has worked in the education, government, financial and manufacturing industries. Kunk's co-authored the book "Professional DevExpress ASP.NET Controls" (Wrox Programmer to Programmer, 2009). He can be reached via email at joekunk@ajboggs.com.