기다려야 할 작업 목록이 있습니다. 나는 기다리고있어.
await TaskEx.WhenAll(MyViewModel.GetListOfTasks().ToArray());
MyViewModel.GetListOfTasks ()는 작업 목록을 반환합니다.
var tasksList = new List<Task>();
foreach (var item in Items)
{
tasksList.Add(item.MyTask());
}
지금, 나는 즉시 완료 될 거짓 작업을 반환하고 싶습니다. 그러나 TaskEx.WhenAll은 영원히 기다릴 것입니다.
public Task<bool> MyTask()
{
return new Task<bool>(() => false);
}
어떻게하면 즉시 완료 될 Task를 반환 할 수 있습니까?
.NET 4.5에서는 FromResult를 사용하여 작업 결과를 즉시 반환 할 수 있습니다.
public Task<bool> MyTask()
{
return TaskEx.FromResult(false);
}
http://msdn.microsoft.com/en-us/library/hh228607%28v=vs.110%29.aspx
Windows Phone 8.1 이상에서는API가 병합되었습니다.다른 플랫폼과 일치하도록
public Task<bool> MyTask()
{
return Task.FromResult(false);
}
.NET 4.5 이전에는 다음을 사용할 수 있습니다.TaskCompletionSource<TResult>
시뮬레이션하기FromResult
방법.
public static Task<TResult> FromResult<TResult>(TResult result)
{
var completionSource = new TaskCompletionSource<TResult>();
completionSource.SetResult(result);
return completionSource.Task;
}
FromResult
방법. - Sam HarwellFromResult
사용 가능한 방법이 아닙니다. - Scott Chamberlain