using System.Collections.Generic;
using System.Threading.Tasks;
private static Task WriteAsync(string filename)
Console.WriteLine("File {0} start writing!", filename);
Console.WriteLine("File {0} finish writing!", filename);
private static async Task CopyDocToDirectory(string filename)
await WriteAsync(filename);
private static void ProcessDocsAndCopyToDirectory(List<string> docsList)
Task.WhenAll(docsList.Select(doc =>
Task.Factory.StartNew(async () => {
await CopyDocToDirectory(doc);
public static void Main()
var docsList = new List<string>();
for(var i = 0; i < 10; i++)
docsList.Add(string.Format("TestFile{0}", i));
ProcessDocsAndCopyToDirectory(docsList);
foreach(var file in docsList)
Console.WriteLine("File {0} was readed", file);