C#多线程怎么回事。

我开启了一个线程,然后在那个线程放了一个死循环。就这样,无法让我的进程退出了?我真的感觉有一点扯蛋。我关闭了窗口,难道不销毁进程么?我关闭了窗口,进程还退不出去。搞不半天... 我开启了一个线程,然后在那个线程放了一个死循环。 就这样,无法让我的进程退出了?我真的感觉有一点扯蛋。 我关闭了窗口,难道不销毁进程么? 我关闭了窗口,进程还退不出去。搞不半天都不知道是什么原因。 难道还要用什么线程关闭函数,去退出那个线程。 C++都没碰到过这种情况。我真心想不明白。 关闭窗口了,默认处理函数,应该把一切都解决了。 难道还要自己来退出。调用神马APPLICATION.EXIT ENVIRONMENT.EXIT之类函数。 展开
 我来答
最后的仙人
2012-08-25 · TA获得超过1961个赞
知道大有可为答主
回答量:1509
采纳率:0%
帮助的人:1402万
展开全部
关闭窗口只是销毁了窗口这个线程,如果本来只有这一个线程,当然进程就结束了,现在你还有另外一个线程,进程当然不结束
411129362
2012-08-25 · TA获得超过4189个赞
知道小有建树答主
回答量:822
采纳率:0%
帮助的人:982万
展开全部
C#中主窗体是在主线程中运行的,主窗体关闭,主线程被销毁,但其它线程依然会在线程池中运行,既然运行,进程自然就不会关闭。

“关闭窗口了,默认处理函数,应该把一切都解决了。”你的这个想法,并不合适,你要考虑到一个程序有多个窗体的情况,难道我打开了10个窗体,关闭了1个就要把进程结束掉?

Application.Exit()方法就是为了解决这种情况,这个方法执行时,会通知所有线程处理当前工作,并结束运行;
而Environment.
Exit()就不够友好,它会立刻强行终止所有线程,这样程序可能来不及做出一些处理导致丢失数据,相比之下,推荐使用 Application.Exit();
追问
我那个是主窗口,关闭了主窗口,其他都应该退出吧。WINDOWS应用程序不就这样么。
追答
不是,一个主线程,其它的都在子线程运行;而且,主窗体和子窗体很多时候只是我们逻辑上的一个概念,很多时候窗体间并没有明确的从属关系;

就比如IE,你打开多个网页,哪一个是主窗体?

不可能关闭一个“主窗体“就把所有线程结束掉。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
kcxnvbdbd
2012-08-25 · TA获得超过523个赞
知道小有建树答主
回答量:885
采纳率:50%
帮助的人:619万
展开全部
永远不要怀疑是别人问题!!

设置 thread.IsBackground = true 解决
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leiyangbdzd
2012-08-25 · TA获得超过168个赞
知道小有建树答主
回答量:303
采纳率:0%
帮助的人:166万
展开全部
线程.abort呀
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式