static void Time1(int[][] array) { int iter = array.Length; BigIntArray bigArray = new BigIntArray(max); Thread[] threads = new Thread[iter]; RunnerThread2[] threadStates = new RunnerThread2[iter]; for (int i = 0; i < iter; ++i) { threadStates[i] = new RunnerThread2(array[i], bigArray); threads[i] = new Thread(new ThreadStart(threadStates[i].Run)); } foreach (Thread t in threads) { t.Start(); } }