private void processGeneration() { var resultDict = new Dictionary <int, bool>(); for (var i = RowOfPots.LowerBound; i <= RowOfPots.UpperBound; i++) { var currWindow = RowOfPots.GetPotsInclusive(i, i + ProcessingWindowSize - 1); var currWindowKey = currWindow.SimplePotRangeHash(); if (Instructions.InstructionsDict.ContainsKey(currWindowKey)) { var foundInstruction = Instructions.GetInstruction(currWindowKey); resultDict[currWindow[2].PotNumber] = foundInstruction.Result; } } //Update our row dictionary RowOfPots.StartUpdate(); //todo: testing a new method foreach (var kvp in RowOfPots.PotDict) { if (resultDict.ContainsKey(kvp.Key)) { RowOfPots.UpdatePot(kvp.Key, resultDict[kvp.Key]); } else { RowOfPots.UpdatePot(kvp.Key, false); } } RowOfPots.EndUpdate(); }