using System.Threading.Tasks;
static void Main(string[] args)
var read1 = ReadFileAsync(@"C:\Users\stefan.stoykov\Desktop\file.txt");
var read2 = ReadFileAsync(@"C:\Users\stefan.stoykov\Desktop\file2.txt");
Task.WhenAll(read1,read2)
.ContinueWith(task=> Console.WriteLine("All files have been read successfuly"));
private static Task<int> ReadFileAsync(string filePath)
var fs = File.OpenRead(filePath);
var readBuffeer = new byte[fs.Length];
var readTask = fs.ReadAsync(readBuffer, 0, (int)fs.Length);
readTask.ContinueWith(task=>
if(task.Status == TaskStatus.RanToCompletion)
Console.WriteLine("Read {0} bytes successfulyf from file {1}", task.Result, filePath);
Console.WriteLine("Exception occured wbihle reading the file {0}", filePath);