我登录我的信息到控制台。 但我有一些有趣的效果。 当我选择在控制台中的一些消息我的UI挂起。 UI将活着的时候,我取消控制台中的所有。 我不喜欢这样的行为。
这是任何解决方案吗?
Console::WriteLine("Message");
我登录我的信息到控制台。 但我有一些有趣的效果。 当我选择在控制台中的一些消息我的UI挂起。 UI将活着的时候,我取消控制台中的所有。 我不喜欢这样的行为。
这是任何解决方案吗?
Console::WriteLine("Message");
你选择在控制台中的文本。 你可以想像,如果控制台继续输出信息,将很难选择你要选择什么,所以系统暂停可见更新。 如果你希望你的应用程序继续呈现明显的升级,停止在屏幕上选择文本。
您可以在控制台编程方式禁用快速编辑模式:
class Program {
static void Main(string[] args) {
uint mode;
IntPtr stdIn = GetStdHandle(STD_INPUT_HANDLE);
if (GetConsoleMode(stdIn, out mode)) {
if ((mode & (uint) ConsoleModes.ENABLE_QUICK_EDIT_MODE) != 0) {
mode = mode ^ (uint) ConsoleModes.ENABLE_QUICK_EDIT_MODE;
SetConsoleMode(stdIn, mode);
}
}
int i = 0;
while (true) {
Thread.Sleep(300);
Console.WriteLine(i++);
}
}
const int STD_INPUT_HANDLE = -10;
[DllImport("kernel32.dll", SetLastError = true)]
static extern IntPtr GetStdHandle(int nStdHandle);
[DllImport("kernel32.dll")]
static extern bool GetConsoleMode(IntPtr hConsoleHandle, out uint lpMode);
[DllImport("kernel32.dll")]
static extern bool SetConsoleMode(IntPtr hConsoleHandle, uint dwMode);
[Flags()]
enum ConsoleModes : uint {
ENABLE_PROCESSED_INPUT = 0x1,
ENABLE_LINE_INPUT = 0x2,
ENABLE_ECHO_INPUT = 0x4,
ENABLE_WINDOW_INPUT = 0x8,
ENABLE_MOUSE_INPUT = 0x10,
ENABLE_INSERT_MODE = 0x20,
ENABLE_QUICK_EDIT_MODE = 0x40,
ENABLE_EXTENDED_FLAGS = 0x80,
ENABLE_AUTO_POSITION = 0x100,
}
}
这不是特定于应用程序,它的“功能”,所有控制台应用程序的存在。 当选择文本 - 整个应用程序挂起。 这种行为无法改变。