title: Type 'T' is not awaitable
body: <p>i am creating a task scheduler so i am trying to make some kind of repeating function that accepts Task and awaits it but i get a strange Exception of <code>Type 'T' is not awaitable</code></p>
  
  <pre><code>public static Task&lt;T&gt; Interval&lt;T&gt;(TimeSpan pollInterval, Func&lt;T&gt; action, CancellationToken token)
  {
      return Task.Factory.StartNew(
          async () =&gt;
          {
              for (; ; )
              {
                  if (token.WaitCancellationRequested(pollInterval))
                      break;
  
                  await action();
              }
          }, token, TaskCreationOptions.LongRunning, TaskScheduler.Default);
  }
  </code></pre>
  
  <p>So can anyone tell me how could i await a that generic Task cuz i want the function to accept any Task, Task, bool or any other type ?</p>