等到文件在Asp.net C中保存完成#

时间:2014-08-01 07:03:49

标签: c# asp.net multithreading file-upload

我的asp.net C#应用程序中有一个文件上传过程。 我使用以下代码将浏览文件保存在路径上:

    this.fupUploadImage.SaveAs("filepath");

我必须等待执行直到Save过程完成。任何机构都可以提出好的方法吗?

提前致谢。

1 个答案:

答案 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",以便在保存时进行管理操作是否成功。