首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么能方便结束小弟我的程序啊郁闷了

2012-01-28 
如何能方便结束我的程序啊?郁闷了。我的程序写的比较大,也比较烂,呵呵。我在开始的时候启动了两个httlistene

如何能方便结束我的程序啊?郁闷了。
我的程序写的比较大,也比较烂,呵呵。
我在开始的时候启动了两个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();
一般来说就可以了。。

热点排行