title: The 'await' operator can only be used with an async lambda expression
body: <p>I'm trying to copy a list of files to a directory. I'm using async / await. 
  But I've been getting this compilation error</p>
  
  <blockquote>
    <p>The 'await' operator can only be used within an async lambda
    expression. Consider marking this lambda expression with the 'async'
    modifier.</p>
  </blockquote>
  
  <p>This is what my code looks like</p>
  
  <pre><code>async Task&lt;int&gt; CopyFilesToFolder(List&lt;string&gt; fileList, 
              IProgress&lt;int&gt; progress, CancellationToken ct)
  {
      int totalCount = fileList.Count;
      int processCount = await Task.Run&lt;int&gt;(() =&gt;
      {
          int tempCount = 0;
          foreach (var file in fileList)
          {
              string outputFile = Path.Combine(outputPath, file);
  
              await CopyFileAsync(file, outputFile); //&lt;-- ERROR: Compilation Error 
  
              ct.ThrowIfCancellationRequested();
              tempCount++;
              if (progress != null)
              {
                  progress.Report((tempCount * 100 / totalCount)));
              }
  
          }
  
          return tempCount;
      });
      return processCount;
  }
  
  
  private async Task CopyFileAsync(string sourcePath, string destinationPath)
  {
      using (Stream source = File.Open(sourcePath, FileMode.Open))
      {
          using (Stream destination = File.Create(destinationPath))
          {
              await source.CopyToAsync(destination);
          }
      }
  
  }
  </code></pre>
  
  <p>Pls can anyone point out what am I missing here ?</p>