我有一个上传文件到服务器的方法。现在它已经能够正常工作,除了这个方法可能存在一些不良的编码(因为我对任务库还不是很熟悉)。
下面是上传文件到服务器的代码:
private async void UploadDocument()
{
var someTask = await Task.Run<bool>(() =>
{
// open input stream
using (System.IO.FileStream stream = new System.IO.FileStream(_cloudDocuments[0].FullName, System.IO.FileMode.Open, System.IO.FileAccess.Read))
{
using (StreamWithProgress uploadStreamWithProgress = new StreamWithProgress(stream))
{
uploadStreamWithProgress.ProgressChanged += uploadStreamWithProgress_ProgressChanged;
// start service client
SiiaSoft.Data.FieTransferWCF ws = new Data.FieTransferWCF();
// upload file
ws.UploadFile(_cloudDocuments[0].FileName, (long)_cloudDocuments[0].Size, uploadStreamWithProgress);
// close service client
ws.Close();
}
}
return true;
});
}
我有一个ListBox,可以拖放多个文件。我想做的是,在ListBox中进行FOR循环,然后调用UploadDocument();
。但我想先上传ListBox中的第一个文件,完成后再继续上传第二个文件,以此类推...
你知道最好的方法吗?
非常感谢。
UploadAllDocuments()
的结果 - 但是如果在等待之后不打算执行任何其他操作(例如重新启用按钮),那么可能不需要做其他事情。 - Jon Skeet