如何能方便结束我的程序啊?郁闷了。
我的程序写的比较大,也比较烂,呵呵。 
 我在开始的时候启动了两个httlistener和3个固定线程, 
 然后通过查询注册表的一个键值 
 if(i==0)启动3个线程 
 else 
 启动另外2个线程。   
 而这5个线程是写在某个类里的,其在运行过程中根据不同需要又各自启动了一些线程。   
 所有的线程都是 
 while(true)   的,也就是说都是死循环的。   
 现在我要退出程序时,老是不能完整的退出,(在任务管理器中还是可以看见,必须手动结束掉)。现在请问如何能在程序退出时正常完整的退出呢,是不是只要有一个线程不死就不能退出呢?   如果快速的将所有线程全干掉?   
 我尝试把while(true)改成   while(RunThread) 
 然后在初始化是将RunThread=true;   退出时变成   false,但是还是不行。   
 头大请教。   
------解决方案--------------------if xp,   
 System.Environment.Exit(0);
------解决方案--------------------楼住,程序推出是销毁掉所有的线程
------解决方案--------------------用线程池来产生线程
------解决方案--------------------设一个bool信号量,所有的线程在循环时都检查这个信号量,如果信号量是true就结束
------解决方案--------------------启动线程的时候,把线程的IsBackground属性设为true(设为后台线程)。   
 退出的时候使用Application.Exit()退出,这样应该会自动关闭所有的后台线程!!!   
------解决方案--------------------LS说的有道理,这样做:   
 //它是线程安全的. 
 ManualResetEvent _isAllClosed = new ManualResetEvent(false);   
 //每个线程中: 
 while (!_isAllClosed.WaitOne(0, false)) 
 { 
 //...... 
 }   
 //当程序需要结束时候,在主线程中: 
 _isAllClosed.Set(); 
------解决方案--------------------Environment.Exit(0);
------解决方案--------------------我也和你一样遇到这样的情况,明明已经用退出命令了。可还是不能退出 
             System.Diagnostics.Process.GetCurrentProcess().Kill(); 
             Application.Exit(); 
 一般来说就可以了。。