我的asp.net C#应用程序中有一个文件上传过程。 我使用以下代码将浏览文件保存在路径上:
this.fupUploadImage.SaveAs("filepath");
我必须等待执行直到Save过程完成。任何机构都可以提出好的方法吗?
提前致谢。
答案 0 :(得分:1)
SaveAs是一个void方法,因此您可以包装该调用并在完成时返回一个值
int SaveFile(string filePath)
{
if (!System.IO.File.Exists(filePath))
{
try{
FileUpload1.SaveAs(savePath);
return 1;
}
catch{
}
return 0;
}
}
然后你可以用这种方式来调用它
if (SaveFile(@"myPath/test.txt") > 0){
//save ok!
}
这是解决问题的同步方法。程序等待保存过程结束。 如果你想在后台执行另一个任务,你可以调用
Task<int> t = Task.Run(() => SaveFile(@"myPath/test.txt"))
.ContinueWith((i) => i > 0? "saveOk" : "saveFailed");
现在保存操作在后台执行,最后结果以ContinueWith
方法输入,您可以用代码替换我的标签"saveOk"
和"saveFailed"
,以便在保存时进行管理操作是否成功。