Aparentemente, no entiendo cómo usar el método ContinueWith. Mi objetivo es ejecutar una tarea y, cuando la complete, devolver un mensaje.Tarea.Continuar Con la orden de ejecución
Aquí está mi código:
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.";
}
}
El "nombre de archivo" variables siempre devuelve "No establecido". Parece que el código dentro del método ContinueWith nunca se llama. (Se llama si depuro a través de línea por línea en VS.)
Se está llamando a este método en mi controlador ASP.NET Web API/AJAx POST.
¿Qué estoy haciendo mal aquí?
es porque está haciendo una operación asíncrona. –
también, aparte de que las tareas son asincrónicas, creo que ni siquiera se han iniciado. – GolfWolf