private void ProcessImagesInProcessPool(IEnumerable<string> imagesToCheck, int numberOfCpus, Model model)
{
if (numberOfCpus == -1)
numberOfCpus = Environment.ProcessorCount;
var files = imagesToCheck.ToArray();
var functionParameters = files.Select(s => new Tuple<string, Model>(s, model)).ToArray();
var total = functionParameters.Length;
var option = new ParallelOptions
{
MaxDegreeOfParallelism = numberOfCpus
};
Parallel.For(0, total, option, i =>
{
var t = functionParameters[i];
TestImage(t.Item1, t.Item2);
});
}