Beispiel #1
0
        public static Task <TResult> FromTaskEnumerable <T, TResult>(this TaskFactory taskFactory, Task <IEnumerable <T> > task, Func <T, Task <bool> > predicate, Func <IEnumerable <T>, Func <T, bool>, TResult> func, CancellationToken cancellationToken = default(CancellationToken))
        {
            var source = new AsyncWhereEnumerable <T>(task, predicate, cancellationToken);

            Func <T, bool> predicateOrdered = source1 => predicate(source1).Result;

            return(Task.Factory.FromEnumerable(source, predicateOrdered, func, cancellationToken));
        }
        public static Task <AsyncWhereEnumerable <T> > FromWhereTaskEnumerable <T>(this TaskFactory taskFactory, Task <IEnumerable <T> > task, Func <T, int, Task <bool> > predicate, Func <IEnumerable <T>, Func <T, int, bool>, IEnumerable <T> > func, CancellationToken cancellationToken = default(CancellationToken))
        {
            var source = new AsyncWhereEnumerable <T>(task, predicate, cancellationToken);

            var taskEnumerable      = FromTaskEnumerable(taskFactory, source, enums => enums, AsyncWhereEnumerable <T> .CreateFrom, cancellationToken);
            var taskWhereEnumerable = taskEnumerable.ContinueWith((t, x) => new AsyncWhereEnumerable <T>(t.Result), source, cancellationToken, TaskContinuationOptions.ExecuteSynchronously, TaskScheduler.Default);

            return(taskWhereEnumerable);
        }
Beispiel #3
0
        public static Task <TResult> FromEnumerable <T, TResult>(this TaskFactory taskFactory, IEnumerable <T> source, Func <T, Task <bool> > predicate, Func <IEnumerable <T>, Func <T, bool>, TResult> func, bool skipFilterPredicate, CancellationToken cancellationToken = default(CancellationToken))
        {
            source = new AsyncWhereEnumerable <T>(source, predicate, cancellationToken)
            {
                SkipFilterPredicate = skipFilterPredicate
            };

            Func <T, bool> predicateOrdered = source1 => predicate(source1).Result;

            return(Task.Factory.FromEnumerable(source, predicateOrdered, func, cancellationToken));
        }