Q:
控制檯程序不斷輸出文本到控制檯界面上,偶爾會有卡頓的現象:
鼠標點上去會有一個白色方塊,按任意鍵又可以正常執行。
如以下代碼:
while(true){
Console.Writeline("running");
Thread.Sleep(1000*5);
}
A:
如果用戶意外地點擊黑色控制檯窗口,光標將變爲一個填充的白色矩形,並且應用程序將在下一個Console.Write語句中掛起,直到另一個clic被創建。
當“快速編輯模式”啓用時,它是控制檯窗口的通用功能。
爲了禁用該功能,您應該在運行時取消選中應用程序控制臺窗口的“快速編輯模式”選項
c#代碼:
// 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);
R: