簡體   English   中英

如何保持控制台窗口打開

[英]How to keep console window open

當我運行我的程序時,控制台窗口似乎運行並關閉。 如何保持打開狀態以便我可以看到結果?

class Program
{
    public class StringAddString       
    {                        
        public virtual void AddString()
        {
            var strings2 = new string[] { "1", "2", "3", "4", "5","6", "7", "8", "9"};

            Console.WriteLine(strings2);
            Console.ReadLine();
        }
    }

    static void Main(string[] args)
    {          
        StringAddString s = new StringAddString();            
    }
}

將 Console.Read() 作為程序的最后一行。 這將阻止它關閉,直到你按下一個鍵

static void Main(string[] args)
{
    StringAddString s = new StringAddString();
    Console.Read();            
}

如果你想在調試的時候讓它保持打開狀態,但在不調試的時候仍然讓它正常關閉,你可以這樣做:

if (System.Diagnostics.Debugger.IsAttached) Console.ReadLine();

與其他答案一樣,對Console.ReadLine()的調用將使窗口保持打開狀態,直到按下 Enter,但只有在連接了調試器時才會調用Console.ReadLine()

我知道有兩種方式

1) 程序末尾的Console.ReadLine() 缺點,你要改你的代碼,還得記得把它拿出來

2) 在調試器CONTROL-F5之外運行,這會在 Visual Studio 之外打開一個控制台窗口,並且該窗口在完成后不會關閉。 優點,您不必更改代碼。 缺點,如果有異常,它不會掉到調試器中(但是當你得到異常時,你可以簡單地在調試器中重新運行它)

Console.ReadKey(true);

這個命令比 readline 好一點,它只在你按下回車鍵時才通過,並且 true 參數在讀取結果時也會隱藏丑陋的閃爍光標:) 然后任何擊鍵終止

你忘了調用你的方法:

static void Main(string[] args)
{          
    StringAddString s = new StringAddString();  
    s.AddString();
}

它應該停止您的控制台,但結果可能不是您所期望的,您應該稍微更改您的代碼:

Console.WriteLine(string.Join(",", strings2));

您無需用戶輸入即可處理此問題。

Step 1. 在主線程開始創建一個 ManualRestEvent

ManualResetEvent manualResetEvent = new ManualResetEvent(false);

第2步 。 等待手動重置事件

manualResetEvent.WaitOne();

步驟 3.停止

manualResetEvent.Set();

Console.ReadKey(); main()方法的最后一行。 此行阻止完成控制台。 我希望它會幫助你。

如果您使用 Visual Studio,只需使用 Crtl + F5 而不是 F5 運行應用程序。 這將使控制台在完成執行后保持打開狀態。

最后使用 Console.Readline() 。直到您手動關閉它,您的代碼才會關閉。由於 Readline 等待需要為您的代碼輸入的輸入,因此您的控制台將一直打開,直到您輸入一些輸入。

對於 Visual c# 控制台應用程序使用:

Console.ReadLine();
Console.Read();
Console.ReadKey(true);

對於 Visual C++ win32 控制台應用程序使用:

system("pause");

按 ctrl+f5 運行應用程序。

確保使用Console.ReadLine(); 保持前面的Console.WriteLine(""); 關閉消息。

為了能夠在不關閉的情況下為其提供輸入,您可以將代碼包含在 while 循環中

while (true) 
{
     <INSERT CODE HERE>
}

它將繼續停在Console.ReadLine(); ,然后在輸入內容時執行另一個循環。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM