Example #1
0
        public static void For(SBThreadPool pool, int inclusiveStart, int exclusiveEnd, ParallelForIterationDelegate iterate)
        {
            if(inclusiveStart >= exclusiveEnd)
                return;

            using (ParallelForRun loopRun = new ParallelForRun(exclusiveEnd - inclusiveStart, inclusiveStart, iterate))
            {
                for (int i = 0; i < pool.NumThreads; i++)
                {
                    SBJob job = new ParallelForJob(loopRun);
                    job.QueueInPool(pool);
                }
                loopRun.ThreadRunIterations();
                loopRun.Join();
            }
        }
Example #2
0
 public ParallelForJob(ParallelForRun loopRun)
 {
     this.loopRun = loopRun;
 }