C# 环境。退出随机生成Win32句柄错误

C# 环境。退出随机生成Win32句柄错误,c#,exit-code,C#,Exit Code,我创建了一个退出应用程序的简单toolstrip项 它将数据保存到数据表,然后返回一个消息框,说明保存成功,然后退出 当我使用Environment.Exit(1)时,它挂起了,在阅读一些细节时,他会说线程可能正在等待、休眠等 我尝试使用Environment.Exit(0),但不知何故它起了作用,但我不知道为什么。 我知道这与退出代码有关,但作为一名“业余”程序员,我不知道这意味着什么 有什么提示吗?可能是针对最终用户程序员的阅读源?当您指定0时,则表示成功,但当您指定0以外的任何内容时,则表

我创建了一个退出应用程序的简单
toolstrip

它将数据保存到
数据表
,然后返回一个
消息框
,说明保存成功,然后退出

当我使用
Environment.Exit(1)
时,它挂起了,在阅读一些细节时,他会说线程可能正在等待、休眠等

我尝试使用
Environment.Exit(0)
,但不知何故它起了作用,但我不知道为什么。 我知道这与退出代码有关,但作为一名“业余”程序员,我不知道这意味着什么


有什么提示吗?可能是针对最终用户程序员的阅读源?

当您指定
0
时,则表示成功,但当您指定
0
以外的任何内容时,则表示错误

你可以查一下

报告还说:

参数

exitCodeType:System.Int32

要提供给操作系统的退出代码使用0(零)来 表示流程已成功完成。


你的意思是说,我是故意犯错误的?还有,为什么错误是随机的?它不应该每次都给出错误吗?请改进你的帖子,现在它没有给出OP程序为什么会挂起的任何提示。@HansPassant当然没有。这就是我想弄明白的。我的评论是针对拉胡尔的,不是你。OP是你。你必须更好地记录你的问题。必须启用非托管调试,并在挂起时使用Debug+Break All。如果需要,可以使用Debug+Windows+Threads窗口选择线程,您可能需要查看终结器线程。您看到的调用堆栈是解决此问题的基本文档。若所有这些听起来像GobbleDeBook,那个么很可能是这样,那个么根本就不要使用Environment.Exit()。一种更友好的终止程序的方法是Application.Exit(),它会正常清理。谢谢,Application.Exit真的做到了