我在Visual Studio上的控制檯應用程序正在自動關閉,所以我想用C的system("PAUSE")
這樣的東西在執行結束時「暫停」應用程序,我該如何實現這一點?如何阻止C#控制檯應用程序自動關閉?
回答
Console.ReadLine()
等待用戶輸入或Console.ReadKey
等待任何密鑰。
用途:
Console.ReadKey();
對於它關閉時,有人按下任意鍵,或:
Console.ReadLine();
因爲當用戶鍵入的東西,並按下回車。
你可以只編譯(開始調試)與按Ctrl + F5 您工作。
試試吧。我總是這樣做,控制檯向我展示了我的結果。不需要額外的代碼。
Ctrl + F5重建應用程序(如果有必要),並在不調試*的情況下運行*(即調試程序未附加),在新的控制檯窗口中,在應用程序退出後,會運行「暫停」命令或類似命令同一個窗口。 '暫停'用於給你一個機會在控制檯窗口關閉之前讀取輸出。當從命令行使用應用程序時,不需要暫停,因爲命令完成後控制檯窗口不會關閉。 – 2014-08-05 21:36:45
@ToolmakerSteve它被提升了,因爲它是OP有問題的最佳解決方案。 – 2016-01-14 23:48:11
@ToolmakerSteve,這是我正在尋找。我知道ReadLine()和Read()並希望避免這種情況。 – VivekDev 2016-01-24 03:24:17
嘗試Ctrl + F5鍵在Visual Studio中運行您的程序,這將增加一個暫停使用「按任意鍵繼續......」自動無任何到Console.ReadLine()或ReadKey()函數。
或者,您可以使用下面的代碼延時關閉:
System.Threading.Thread.Sleep(1000);
注意Sleep
使用毫秒。
Thread.Sleep(TimeSpan.FromSeconds(1))如果任何人想要用秒數 – 2016-09-22 17:06:53
'System.Threading.Thread.Sleep(-1)'無限期睡眠。 – Acidic 2017-08-14 12:24:23
Ctrl + F5更好,因爲你不需要額外的線。 最後,您可以進入和退出運行模式。
但是,當你開始使用F5的程序,把一個破發點,你可以調試你的應用程序,並且讓你的其他優點。
提到的那些解決方案會改變程序的工作方式。
你可以關閉過程中把#if DEBUG
和#endif
周圍的控制檯呼叫,但如果你真的想阻止窗口從Visual Studio在你的開發機器上只關閉或者VS,不僅在運行,如果你明確地配置,並且您不希望從命令行運行時令人討厭的'Press any key to exit...'
,要走的路是使用System.Diagnostics.Debugger
API。
如果您只希望在DEBUG
中工作,只需將此代碼包裝在[Conditional("DEBUG")] void BreakConditional()
方法中即可。
// Test some configuration option or another
bool launch;
var env = Environment.GetEnvironmentVariable("LAUNCH_DEBUGGER_IF_NOT_ATTACHED");
if (!bool.TryParse(env, out launch))
launch = false;
// Break either if a debugger is already attached, or if configured to launch
if (launch || Debugger.IsAttached) {
if (Debugger.IsAttached || Debugger.Launch())
Debugger.Break();
}
這也適用於調試需要提升特權或需要能夠提升自身的程序。
如果您不希望程序關閉,即使用戶按任意鍵;
while (true) {
System.Console.ReadKey();
};//This wont stop app
這造成了一個無限循環。幾乎從來不是一個好主意。 – 2017-09-22 21:12:31
它在readkey上等待不會連續循環,這有它的用處。如果您有其他處理來控制應用程序,這是一個可行的解決方案。無限和超越! :) – Hariboo 2017-09-26 09:49:13
假設它檢測到按鍵,那麼是什麼?它只是等待下一個按鍵。它不會脫離循環。只要說「使用'System.Console.Readkey()'」而不是將問題與一個破碎的例子混淆。即使如此,使用無限循環應該像使用goto一樣對待。能夠在需要時很高興,但不要僅僅因爲可以!最後,在一個不需要它的應用程序中插入'按任意鍵繼續'是一個kludgy黑客。這不是OP問題的解決方案。在這個問題的所有答案都是錯誤的,除了由@SlobodanStanković – 2017-09-26 11:21:42
- 1. 如何停止C#控制檯應用程序自動關閉?
- 2. 阻止控制檯關閉時應用程序退出
- 3. 當控制檯窗口關閉時阻止程序關閉
- 4. 如何在運行控制檯應用程序時阻止控制檯窗口關閉?
- 5. 如何阻止C#控制檯應用程序優先使用活動窗口?
- 6. 如何啓動和關閉控制檯應用程序?
- 7. C++代碼自動關閉控制檯
- 8. 有什麼辦法來阻止控制檯應用程序關閉?
- 9. 如何啓動控制檯應用程序並防止在最後關閉?
- 10. 如何在Windows關機時關閉控制檯應用程序
- 11. 如何阻止強制關閉應用程序?
- 12. 終止C#控制檯應用程序
- 13. 控制檯應用程序關閉/終止時檢測?
- 14. 阻止應用程序關閉
- 15. 關閉控制檯也關閉GUI應用程序
- 16. 在將輸出類型設置爲Windows應用程序時阻止控制檯應用程序關閉
- 17. 提示時C#關閉控制檯應用程序?
- 18. 關閉MessageBox後的C#控制檯應用程序單擊
- 19. 在返回值後使C#控制檯應用程序關閉
- 20. 控制檯應用程序C的關閉事件#
- 21. 如何在關閉它時終止控制檯應用程序中的getchar
- 22. 如何防止控制檯窗口在ghc應用程序中關閉?
- 23. 阻止來自Ruby應用程序的關閉進程
- 24. 如何在C#windows應用程序中單擊關閉按鈕時阻止應用程序關閉?
- 25. 如何在關閉Windows控制檯時正常關閉Java應用程序?
- 26. 從.Net.Timer後關閉,防止我的控制檯應用程序啓動
- 27. 如何退出控制檯應用程序並關閉c#中的窗口?
- 28. 如何從Windows窗體應用程序在C#中關閉控制檯窗口?
- 29. 如何執行關閉C#控制檯應用程序的操作?
- 30. 關閉應用.NET控制檯應用程序
「‘控制檯’不包含在asp.net 5控制檯應用程序的‘ReadKey’的定義」來了,去這裏: http://stackoverflow.com/questions/30588478/console-does -not-contain-a-definition-for-read -key-in-asp-net-5-console-app – 2015-11-30 17:16:38
這實際上是一個不好的答案,因爲它給OP提供了他們所要求的而不是他們需要的東西。告訴OP打破他的軟件來解決他啓動它的方式只是一個不好的建議。除此之外,它使得不可能在流水線中使用該程序。 – 2016-01-14 23:47:35
Silva的回答比較好,可以用Control-F5運行 – Del 2016-08-04 14:19:18