예제 #1
0
파일: Task.cs 프로젝트: foobit/Mond
        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));
        }
예제 #2
0
파일: Task.cs 프로젝트: foobit/Mond
        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));
        }