c# - sirve - Volver a la tarea<bool> al instante
public bool c# (2)
Antes de .NET 4.5, puede usar TaskCompletionSource<TResult>
para simular el método FromResult
.
public static Task<TResult> FromResult<TResult>(TResult result)
{
var completionSource = new TaskCompletionSource<TResult>();
completionSource.SetResult(result);
return completionSource.Task;
}
Tengo una lista de tareas, que me gustaría esperar. Estoy esperando como
await TaskEx.WhenAll(MyViewModel.GetListOfTasks().ToArray());
MyViewModel.GetListOfTasks () devuelve Lista de tareas:
var tasksList = new List<Task>();
foreach (var item in Items)
{
tasksList.Add(item.MyTask());
}
Ahora, me gustaría devolver una tarea ficticia, que se haría de inmediato. Sin embargo, TaskEx.WhenAll lo esperaría por siempre:
public Task<bool> MyTask()
{
return new Task<bool>(() => false);
}
¿Cómo puedo devolver la tarea, que se terminaría al instante?
en .NET 4.5 puede usar FromResult para devolver inmediatamente un resultado para su tarea.
public Task<bool> MyTask()
{
return TaskEx.FromResult(false);
}
http://msdn.microsoft.com/en-us/library/hh228607%28v=vs.110%29.aspx
Para Windows Phone 8.1 y superior, la API se ha fusionado para ser coherente con otras plataformas:
public Task<bool> MyTask()
{
return Task.FromResult(false);
}