我在做一个多线程的程序,用C#写的,可是为什么我关闭了所有窗口以后,应用程序还不退出
我在做一个多线程的程序,用C#写的,可是为什么我关闭了所有窗口以后,应用程序还不退出,而要在任务管理器中结束进程呢???...
我在做一个多线程的程序,用C#写的,可是为什么我关闭了所有窗口以后,应用程序还不退出,而要在任务管理器中结束进程呢???
展开
4个回答
展开全部
有3个办法,
1. 启动线程时记录所有线程,然后在窗口都退出后结束这些线程
2 将你的线程设置为后台线程(IsBackground = true),这样窗口都退出后这些线程会自动结束。
3 或是来个狠点的 System.Environment.Exit
1. 最好,但代码会有一点多,还有Application .exit 是退出消息泵,关闭窗口的,跟关闭线程没有多大关系。要使用 Environment.Exit
1. 启动线程时记录所有线程,然后在窗口都退出后结束这些线程
2 将你的线程设置为后台线程(IsBackground = true),这样窗口都退出后这些线程会自动结束。
3 或是来个狠点的 System.Environment.Exit
1. 最好,但代码会有一点多,还有Application .exit 是退出消息泵,关闭窗口的,跟关闭线程没有多大关系。要使用 Environment.Exit
更多追问追答
追问
System.Environment.Exit,貌似最简单,哪它有什么缺点吗?
追答
System.Environment.Exit 好不好看情况而定。因为大多数情况下程序免不了与读写文件、数据库或是某些资料打交道,而在处理的过程中需要打开文件、读写、关闭。而在这些过程中使用System.Environment.Exit强制进程退出,这样没有机会关闭资源了,而这会造成某些资源文件的损坏,比如数据库损坏、或是文件只写了一半数据进去。而如果是一些纯计算类的工作的话那就不用考虑这些情况了。
展开全部
在结束程序的时候,把所有的线程都结束,不然就会出现这种情况
追问
网上说用Application.Exit()这个是什么意思,我什么我使用它不行呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当然了,技即使是线程你也要返回
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这件东西有啥特别之处。”尤里。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询