0

我正在使用Visual Studio和C#編寫控制檯應用程序。我一直在打印調試信息到控制檯窗口。複製和粘貼命令提示符會導致凍結控制檯應用程序進度

該程序相當簡單,它只是多次查詢多個數據庫並將值存儲在我的中央數據庫中。它總共超過900次。在查詢數據庫的時候,它偶爾會(並且隨機)停止在控制檯窗口上,並停止打印出調試信息或者在程序中繼續進行。 奇怪的是,當我突出顯示窗口並右鍵單擊(複製)時,這似乎將程序重新啓動並重新開始工作!

有誰知道可能是什麼原因造成的?這是我以前在程序中見過的最奇特的行爲!

+0

哦,我要指出,這是絕對是的kickstart節目的亮點及複印件。我已經做了大量的測試,以確保它不是巧合。 – 2012-04-25 14:38:18

回答

1

如果用戶不小心點擊到黑色的控制檯窗口,光標變成一個填充的白色矩形,並且應用程序掛起,直到另一個clic被創建。

這是控制檯窗口啓用「QuickEdit模式」時的一個通用功能。

爲了禁用該功能,您應該在運行時取消選中應用程序控制臺窗口的「快速編輯模式」選項。

或以編程方式禁用它:

// http://msdn.microsoft.com/en-us/library/ms686033(VS.85).aspx 
    [DllImport("kernel32.dll")] 
    public static extern bool SetConsoleMode(IntPtr hConsoleHandle, uint dwMode); 

    private const uint ENABLE_EXTENDED_FLAGS = 0x0080; 

    static void Main(string[] args) 
    { 
     IntPtr handle = Process.GetCurrentProcess().MainWindowHandle; 
     SetConsoleMode(handle, ENABLE_EXTENDED_FLAGS); 
相關問題