当一个C#或VB.Net 控制台程序调试控制台尽快关闭作为程序结束并没有机会看到的输出。我如何保持开放?如何暂停Windows控制台程序正在调试
回答
我经常看到类似这样的问题。通常建议是使用Console.ReadKey()或类似的东西,但这不适合生产使用。我的首选是简单地在Main的最后一行放置一个断点,或者类似的地方。
但我认为一个好的选择是使用Debugger.IsAttached来确定控制台程序是否正在调试。以下是如何使用它的简单示例。这是C#代码,但我希望很容易转换为VB .Net。
using System;
namespace TestConsole
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Testing");
if (System.Diagnostics.Debugger.IsAttached)
{
Console.WriteLine("Debugging; press a key to continue...");
Console.ReadKey();
}
}
}
}
检查调试器是不够的,如果用户在他的桌面上创建了程序的快捷方式,这也会失败。 –
对于桌面上程序的快捷方式,我不认为它是一个失败,因为它是控制台程序的正常行为。用户希望需要为控制台程序做些事情,我们不需要在代码中添加特别的东西。 – user34660
#define DEBUG
// ...
#if DEBUG
Console.WriteLine("Debug version");
#endif
是否会消除在调试器外部执行的调试版本正在执行的相关代码?在调试器外部,我们自动获得“按任意键继续”。 – user34660
@ user34660不,您需要指定构建调试/发布模式。 –
如果你不想调试只是按(Ctrl + F5键)。否则,如果你想调试只是把你的代码的最后一行的中断点
你可以在程序结束时使用Console.ReadKey();
。
Console.ReadKey();
阻止当前线程,直到按下字符或功能键。
是的,我说我使用了一个断点。请注意,我的答案确实使用了Console.ReadKey(),除了扭曲之外。 – user34660
- 1. 组装控制台暂停
- 2. 暂停Python控制台
- 3. 如何停止控制台暂停我的线程和任务?
- 4. 在调试点暂停程序?
- 5. 在Windows中暂时捕获控制台应用程序的stdout
- 6. 控制台在C++中暂停?
- 7. 控制台程序调试/发布
- 8. Windows应用程序中的OpenCV控制台调试
- 9. 从控制台读取而不暂停程序
- 10. 自动暂停c#中的控制台应用程序
- 11. 引导程序播放/暂停控制
- 12. XDebug:如何调试远程控制台应用程序?
- 13. 强制C++程序在Visual Studio调试器中暂停
- 14. JDI:如何在调试器中暂停Java应用程序(JVM)
- 15. AWS控制台,暂停评估
- 16. 如何在F#语言中暂停控制台
- 17. 如何在控制台中播放和暂停Youtube视频?
- 18. C++:如何使用Windows Media Player在Visual Studio控制台应用程序中播放和暂停MP3文件?
- 19. 在Windows控制台应用程序
- 20. 如何设置控制台应用程序的自动调试
- 21. QtCreator调试暂停在程序代码不是程序集
- 22. 暂停在控制台2内运行的bash中的进程
- 23. 使用Windows调度程序运行控制台应用程序
- 24. Windows CE 6远程调试。暂停程序时没有调用堆栈
- 25. IntelliJ - 在调试时暂停线程
- 26. 如何暂停node.js应用程序,直到调试器连接
- 27. 如果发生错误,请在Windows控制台中暂停GNU Make
- 28. C#如何暂停程序
- 29. 在Windows中暂停进程
- 30. 如何暂停.pl和.bat文件中的控制台窗口?
请注意,这是我提供答案的问题。答案以前不存在。如果我在其他问题上发布了我的答案,那么我不会得到认可。 – user34660