using System.Collections.Concurrent;
using System.Threading.Tasks;
public static void Main()
private void MainGeneration(Color32[] source, Color32[] target, int width, int height)
Parallel.ForEach(Partitioner.Create(source, true).GetOrderableDynamicPartitions(), colorItem =>
var color = colorItem.Value;
var y = height - i / width - 1;
target[i] = this.Map(color, i, x, y);
private Color32 Map(Color32 color, long i, long x, long y)