Sto cercando di scaricare file in modo asincrono da un server SFTP usando SSH.NET. Se lo faccio in modo sincrono, funziona bene, ma quando lo faccio async, ottengo file vuoti. Questo è il mio codice:Download file asincrono SSH.Net
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();
}
@YuvalItzchakov, fisso, grazie! –
Grazie per la risposta, tuttavia, ho ancora gli stessi file vuoti quando provo questo. Nessuna eccezione neanche. – spersson
@spersson, ho aggiornato la mia risposta. Sembra che non ci sia alcun vantaggio nell'uso di 'BeginDownloadFile', quindi potresti usare la versione sincrona. –