public virtual void TestTermPositionVectors(IndexReader reader, int threadCount) { MultiThreadTermVectorsReader[] mtr = new MultiThreadTermVectorsReader[threadCount]; for (int i = 0; i < threadCount; i++) { mtr[i] = new MultiThreadTermVectorsReader(); mtr[i].Init(reader); } /** run until all threads finished */ int threadsAlive = mtr.Length; while (threadsAlive > 0) { //System.out.println("Threads alive"); System.Threading.Thread.Sleep(new System.TimeSpan((System.Int64) 10000 * 10)); threadsAlive = mtr.Length; for (int i = 0; i < mtr.Length; i++) { if (mtr[i].IsAlive() == true) { break; } threadsAlive--; } } long totalTime = 0L; for (int i = 0; i < mtr.Length; i++) { totalTime += mtr[i].timeElapsed; mtr[i] = null; } //System.out.println("threadcount: " + mtr.length + " average term vector time: " + totalTime/mtr.length); }