var parallelism = 8;//roughly equivalent to your threadcountvar pixels = Enumerable.Range(0,parallelism).AsParallel().Select(i=>(i,CalculatePixels(i*height/Parallelism))).ToList();BitMap.Update(pixels);