public static MondValue WhenAny(MondState state, params MondValue[] tasks) { AsyncUtil.EnsureAsync(); var taskArray = AsyncUtil.ToTaskArray(state, tasks); var task = Task.WhenAny(taskArray).ContinueWith(t => { var index = Array.IndexOf(taskArray, t.Result); return(tasks[index]); }); return(AsyncUtil.ToObject(task)); }
public static MondValue WhenAll(MondState state, params MondValue[] tasks) { AsyncUtil.EnsureAsync(); var taskArray = AsyncUtil.ToTaskArray(state, tasks); var task = Task.WhenAll(taskArray).ContinueWith(t => { var array = MondValue.Array(); array.ArrayValue.AddRange(t.Result); return(array); }); return(AsyncUtil.ToObject(task)); }