public void Draw(int numIterations, int numThreads) { this.numIterations = numIterations; this.numThreads = numThreads; int yInc = screenHeight / numThreads; int yPos = 0; for (int i = 0; i < numThreads; i++) { var thread = new Thread(new ParameterizedThreadStart(DrawInternal)); currentThreads.Add(thread); var p = new MandelThreadParams(); p.parentForm = parentContext; p.startX = 0; p.startY = yPos; p.startWidth = screenWidth; if (i == numThreads - 1) { p.startHeight = screenHeight - yPos; } else { p.startHeight = yInc; } thread.Start(p); yPos += yInc; } }