{
QueryOptions options = CheckQuery (node, true);
- Task[] tasks = Process (node, call, (n, o) => n.GetEnumerables (o), options);
+ Task[] tasks = Process (node, call, new QueryBaseNodeHelper<T> ().GetEnumerables, options);
Task.WaitAll (tasks, options.Token);
}
internal static Action ProcessAndCallback<T> (QueryBaseNode<T> node, Action<T, CancellationToken> call,
Action callback, QueryOptions options)
{
- Task[] tasks = Process (node, call, (n, o) => n.GetEnumerables (o), options);
+ Task[] tasks = Process (node, call, new QueryBaseNodeHelper<T> ().GetEnumerables, options);
if (callback != null)
Task.Factory.ContinueWhenAll (tasks, (_) => callback ());
Action endAction,
Action callback, QueryOptions options)
{
- Task[] tasks = Process (node, call, (n, o) => n.GetOrderedEnumerables (o), endAction, options);
+ Task[] tasks = Process (node, call, new QueryBaseNodeHelper<T> ().GetOrderedEnumerables, endAction, options);
if (callback != null)
Task.Factory.ContinueWhenAll (tasks, (_) => callback ());
}
}
}
+
+ class QueryBaseNodeHelper<T>
+ {
+ internal IList<IEnumerable<T>> GetEnumerables (QueryBaseNode<T> source, QueryOptions options)
+ {
+ return source.GetEnumerables (options);
+ }
+
+ internal IList<IEnumerable<KeyValuePair<long,T>>> GetOrderedEnumerables (QueryBaseNode<T> source, QueryOptions options)
+ {
+ return source.GetOrderedEnumerables (options);
+ }
+ }
}
}
#endif
\ No newline at end of file