显然,我不太理解如何使用ContinueWith方法。我的目标是执行一个任务,并在完成时返回一条消息。
这是我的代码:
public string UploadFile()
{
if (Request.Content.IsMimeMultipartContent())
{
//Save file
MultipartFormDataStreamProvider provider = new MultipartFormDataStreamProvider(HttpContext.Current.Server.MapPath("~/Files"));
Task<IEnumerable<HttpContent>> task = Request.Content.ReadAsMultipartAsync(provider);
string filename = "Not set";
task.ContinueWith(o =>
{
//File name
filename = provider.BodyPartFileNames.First().Value;
}, TaskScheduler.FromCurrentSynchronizationContext());
return filename;
}
else
{
return "Invalid.";
}
}
变量“filename”始终返回“未设置”。似乎在ContinueWith方法中的代码从未被调用。(如果我在VS中逐行调试它,它会被调用。)
这个方法是在我的ASP.NET Web API控制器 / Ajax POST中被调用。
我做错了什么?