T[i].Join(5000);
这难道不是题主自己阻塞的主线程???
题主写的每一个子线程都告诉主线程:“你给我停五秒”,然后现在问主线程为啥假死了???
而且,lock (new object()) 这句除了增加 CPU 负担以外没有任何用途,感觉上题主是想加锁,实际上每个线程都锁的是不同的对象,完全没体现出锁的意义。