你为什么要开始一个线程然后立即加入呢?
我通常会这样做:
Listthreads = new List (); foreach (string item in items) { string copy = item; // Important due to variable capture ThreadStart ts = () => DoWork(copy); // Strongly typed :) Thread t = new Thread(ts); t.Start(); threads.Add(t); } foreach (Thread t in threads) { t.Join(); }