title: An entry point cannot be marked with the 'async' modifier
body: <p>I copied below code from <a href="http://blogs.msdn.com/b/csharpfaq/archive/2012/06/26/understanding-a-simple-async-program.aspx">this</a>  link.But when I am compiling this code I am getting  an <strong>entry point cannot be marked with the 'async' modifier</strong>. How can I make this code compilable?</p>
  
  <pre><code>class Program
  {
      static async void Main(string[] args)
      {
          Task&lt;string&gt; getWebPageTask = GetWebPageAsync("http://msdn.microsoft.com");
  
          Debug.WriteLine("In startButton_Click before await");
          string webText = await getWebPageTask;
          Debug.WriteLine("Characters received: " + webText.Length.ToString()); 
      }
  
      private static async Task&lt;string&gt; GetWebPageAsync(string url)
      {
          // Start an async task. 
          Task&lt;string&gt; getStringTask = (new HttpClient()).GetStringAsync(url);
  
          // Await the task. This is what happens: 
          // 1. Execution immediately returns to the calling method, returning a 
          //    different task from the task created in the previous statement. 
          //    Execution in this method is suspended. 
          // 2. When the task created in the previous statement completes, the 
          //    result from the GetStringAsync method is produced by the Await 
          //    statement, and execution continues within this method. 
          Debug.WriteLine("In GetWebPageAsync before await");
          string webText = await getStringTask;
          Debug.WriteLine("In GetWebPageAsync after await");
  
          return webText;
      }
  
      // Output: 
      //   In GetWebPageAsync before await 
      //   In startButton_Click before await 
      //   In GetWebPageAsync after await 
      //   Characters received: 44306
  }
  </code></pre>