C#Winform 关闭窗体后,程序还在运行,如何停止程序?

KING_314 2010-08-10 11:18:23
如题。我希望关闭Form窗体后,程序也停止运行。而不是通过VS2008的停止调试来结束运行。
我对程序资源释放部分做了Application.Exit();处理,但程序还是无法停止。请大家指点下。谢谢
...全文
2503 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
skila_hu 2011-08-22
  • 打赏
  • 举报
回复
都是线程惹的祸!!
chuizi250 2011-05-24
  • 打赏
  • 举报
回复
还是直接干掉线程吧
KING_314 2010-09-29
  • 打赏
  • 举报
回复
//写在调用线程时
thThreadread = new Thread(new ThreadStart(BeginListen));
thThreadread.Start();
thThreadread.IsBackground = true;
StartBTN.Enabled = false;
TVXQVSHOT 2010-09-25
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 bloodish 的回复:]
有线程没退出.

设置线程的IsBackground属性为True

一个线程或者是后台线程或者是前台线程。后台线程与前台线程类似,区别是后台线程不会防止进程终止。属于某个进程的所有前台线程都终止后,公共语言运行库就会结束该进程。所有剩余的后台线程都会停止且不会完成。

Thread t;
t.IsBackgroud = true;
[/Quote]这个要写在哪呢?是要关闭的那个窗口代码里?
dodducs 2010-08-10
  • 打赏
  • 举报
回复 1
Environment.Exit(Environment.ExitCode);

加到关闭窗口的事件里去就可以了
linphantom 2010-08-10
  • 打赏
  • 举报
回复
每日10分...
ghost281536992 2010-08-10
  • 打赏
  • 举报
回复
程序里自己起了个线程吧?
窗体的closing事件里判断下,看看那个线程停了没,如果没停,abort一下。
bloodish 2010-08-10
  • 打赏
  • 举报
回复
有线程没退出.

设置线程的IsBackground属性为True

一个线程或者是后台线程或者是前台线程。后台线程与前台线程类似,区别是后台线程不会防止进程终止。属于某个进程的所有前台线程都终止后,公共语言运行库就会结束该进程。所有剩余的后台线程都会停止且不会完成。

Thread t;
t.IsBackgroud = true;

一切为了你 2010-08-10
  • 打赏
  • 举报
回复
关线程 最快
ErrorCode1987 2010-08-10
  • 打赏
  • 举报
回复 1
直接杀掉进程~~
Process p = Process.GetCurrentProcess();
if (p != null)
{
p.Kill();
}
a184485789 2010-08-10
  • 打赏
  • 举报
回复
有线程?把线程停掉试试
-小蕾- 2010-08-10
  • 打赏
  • 举报
回复
你调试后程序有没有进入释放资源部分,就比如
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;

/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
这里面??
龍月 2010-08-10
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20090120/16/cb3ae1e7-9075-4e9a-9ad3-08c6cf4578c7.html

Application.Exit(); 会 推出调试的
htxxvip 2010-08-10
  • 打赏
  • 举报
回复
点方块键,就是MP3播放器上的停止键上的那个图标
纯白油条 2010-08-10
  • 打赏
  • 举报
回复
运行 后 有个图标 点停止就是了
KING_314 2010-08-10
  • 打赏
  • 举报
回复
确实是线程没退出
为什么我先通过停止线程
if (thThreadread != null)
{
thThreadread.Abort();
}

线程还是无法停止?

采用你的方法确实关闭窗口以后,程序也停止运行了
[Quote=引用 8 楼 bloodish 的回复:]
有线程没退出.

设置线程的IsBackground属性为True

一个线程或者是后台线程或者是前台线程。后台线程与前台线程类似,区别是后台线程不会防止进程终止。属于某个进程的所有前台线程都终止后,公共语言运行库就会结束该进程。所有剩余的后台线程都会停止且不会完成。

Thread t;
t.IsBackgroud = true;
[/Quote]
KING_314 2010-08-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zyl_leilei 的回复:]
你调试后程序有没有进入释放资源部分,就比如
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;

/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// ……
[/Quote]
这一部分采用断点 可以看到进入《清理所有正在使用的资源。》
KING_314 2010-08-10
  • 打赏
  • 举报
回复
[Quote=引用楼主 qxw88 的回复:]
如题。我希望关闭Form窗体后,程序也停止运行。而不是通过VS2008的停止调试来结束运行。
我对程序资源释放部分做了Application.Exit();处理,但程序还是无法停止。请大家指点下。谢谢
[/Quote]我希望不点击那个方块就停止程序
fenglei225 2010-08-10
  • 打赏
  • 举报
回复
没关线程 关掉线程就可以了

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧