internal ParallelQueue <ForeachPart <T, T1, T2> > FillWithForeachPart <T, T1, T2>(int from, int to, Action <T, T1, T2> action, IEnumerable <T> source, T1 value1, T2 value2) { ParallelQueue <ForeachPart <T, T1, T2> > parallelQueue = new ParallelQueue <ForeachPart <T, T1, T2> >(); int innercounter = 0; foreach (T sourceLocal in source) { if (innercounter >= from && innercounter <= to) { ForeachPart <T, T1, T2> foreachPart = new ForeachPart <T, T1, T2>(); foreachPart.Start = innercounter; foreachPart.End = innercounter; foreachPart.ExecutionPart = action; foreachPart.SingleSource = sourceLocal; foreachPart.Value1 = value1; foreachPart.Value2 = value2; parallelQueue.Enqueue(foreachPart); } else if (innercounter > to) { break; } innercounter++; } return(parallelQueue); }
internal ParallelQueue <ForPart <T, T1> > FillWithForPart <T, T1>(int from, int to, int step, Action <T, T1> action) { ParallelQueue <ForPart <T, T1> > parallelQueue = new ParallelQueue <ForPart <T, T1> >(); for (int i = from; i < to; i = i + step) { ForPart <T, T1> forPart = new ForPart <T, T1>(i, i); forPart.ExecutionPart = action; parallelQueue.Enqueue(forPart); } return(parallelQueue); }
internal ParallelQueue <InvokePart> FillWithInvoke(InvokeAction[] actions) { ParallelQueue <InvokePart> parallelQueue = new ParallelQueue <InvokePart>(); foreach (InvokeAction invokeAction in actions) { InvokePart invokePart = new InvokePart(); invokePart.InvokationParts.Add(invokeAction); parallelQueue.Enqueue(invokePart); } return(parallelQueue); }
internal ParallelQueue <InvokePart <T> > FillWithInvoke <T>(InvokeAction <T>[] actions, T value) { ParallelQueue <InvokePart <T> > parallelQueue = new ParallelQueue <InvokePart <T> >(); foreach (InvokeAction <T> invokeAction in actions) { InvokePart <T> invokePart = new InvokePart <T>(); invokePart.InvokationParts.Add(invokeAction); invokePart.Value = value; parallelQueue.Enqueue(invokePart); } return(parallelQueue); }
internal ParallelQueue <ForPart <T1, T2> > FillWithForPart <T1, T2>(int from, int to, int step, Action <T1, T2> action, T1 value1, T2 value2) { ParallelQueue <ForPart <T1, T2> > parallelQueue = new ParallelQueue <ForPart <T1, T2> >(); for (int i = from; i < to; i = i + step) { ForPart <T1, T2> forPart = new ForPart <T1, T2>(i, i); forPart.Value1 = value1; forPart.Value2 = value2; forPart.ExecutionPart = action; parallelQueue.Enqueue(forPart); } return(parallelQueue); }
internal ParallelQueue <InvokePart <T1, T2> > FillWithInvoke <T1, T2>(InvokeAction <T1, T2>[] actions, T1 value1, T2 value2) { ParallelQueue <InvokePart <T1, T2> > parallelQueue = new ParallelQueue <InvokePart <T1, T2> >(); foreach (InvokeAction <T1, T2> invokeAction in actions) { InvokePart <T1, T2> invokePart = new InvokePart <T1, T2>(); invokePart.InvokationParts.Add(invokeAction); invokePart.Value1 = value1; invokePart.Value2 = value2; parallelQueue.Enqueue(invokePart); } return(parallelQueue); }