【发布时间】:2009-01-05 10:53:02
【问题描述】:
我有一个小应用程序,可以在启动时搜索并存储大量文件的名称。我将此搜索拆分为多个 Thread 对象,每个对象搜索一个目录,并将结果推送回主线程。
当应用加载时,我会遍历每个线程并加载它:
foreach(Thread t in m_threads)
{
t.Start();
while(!t.IsAlive){}
}
当我在调试器中启动这个应用程序时,它会加载并且线程会快速找到所有文件。但是,如果我在调试器之外启动它会冻结。将调试器附加到进程中,我可以看到 IsAlive 永远不会返回 true。
我是 C# 线程的新手,所以有人知道出了什么问题,或者我可以如何更轻松地调试正在发生的事情吗?
【问题讨论】:
标签: c# multithreading