title: How to use await on methods in interfaces
body: <p>When implementing against an interface (because of mocking, remoting or similiar) using the <em>await</em> keyword and having an interface with methods returning Task&lt;> :</p>
  
  <pre><code>interface IFoo
  {
      Task&lt;BigInteger&gt; CalculateFaculty(int value);
  }
  </code></pre>
  
  <p>the compiler comes up with an error:</p>
  
  <blockquote>
    <p>The 'await' operator can only be used within an async method. Consider marking this method with the 'async' modifier and changing its return type to 'Task'</p>
  </blockquote>
  
  <p>Which is a bit unusual considering the return type is "Task". This problem is kind of frustrating and forces me to "fall back" using <em>continuation style</em> or providing an extra proxy around this interface (and therefore for almost every interface which is not really feasible for me)</p>
  
  <p>Does anyone have a good idea on how to solve this?</p>