Download do arquivo SSH.Net Async

Estou tentando baixar arquivos de forma assíncrona de um servidor SFTP usando o SSH.NET. Se eu fizer isso de forma síncrona, funcionará bem, mas quando o faço de forma assíncrona, recebo arquivos vazios. Este é o meu código:

var port = 22;
string host = "localhost";
string username = "user";
string password = "password";
string localPath = @"C:\temp";

using (var client = new SftpClient(host, port, username, password))
{
    client.Connect();
    var files = client.ListDirectory("");

    var tasks = new List<Task>();

    foreach (var file in files)
    {                        
        using (var saveFile = File.OpenWrite(localPath + "\\" + file.Name))
        {
            //sftp.DownloadFile(file.FullName,saveFile); <-- This works fine
            tasks.Add(Task.Factory.FromAsync(client.BeginDownloadFile(file.FullName, saveFile), client.EndDownloadFile));
        }                        
    }

    await Task.WhenAll(tasks);
    client.Disconnect();

}

questionAnswers(1)

yourAnswerToTheQuestion