private void ThreadWorker(int i, int offspringIndex, int matingPopulationSize)
{
IGenome mother = Population.Genomes[i];
var fatherInt = (int)(ThreadSafeRandom.NextDouble() * matingPopulationSize);
IGenome father = Population.Genomes[fatherInt];
IGenome child1 = Population.Genomes[offspringIndex + i * 2];
IGenome child2 = Population.Genomes[offspringIndex + i * 2 + 1];
var worker = new MateWorker(mother, father, child1,
child2);
worker.Run();
}