- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试按 Q 来退出控制台窗口中的内容。我不喜欢我当前的实现。有没有办法可以异步或使用回调从控制台获取 key ?
最佳答案
您可以从另一个线程调用Console.ReadKey()
,这样它就不会阻塞您的主线程。 (您可以使用.Net 4 Task
或旧的Thread
来启动新线程。)
class Program
{
static volatile bool exit = false;
static void Main()
{
Task.Factory.StartNew(() =>
{
while (Console.ReadKey().Key != ConsoleKey.Q) ;
exit = true;
});
while (!exit)
{
// Do stuff
}
}
}
关于.net - 控制台 ReadKey 异步还是回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3382409/
我在 ReadMode('cbreak') 中使用 Term::ReadKey 读取单个字符并根据输入执行操作。这适用于除箭头键之外的所有其他键。当按下箭头键时,该操作执行 3 次,我理解这是因为箭头
在 perl 脚本中,我试图在不阻塞和不回显输入的字符的情况下接受输入(脚本正在生成输出,我希望使用“热键”来改变其行为)。 我尽可能使用 use Term::ReadKey; ReadMode( "
在我的脚本中,我需要从用户那里获取1个字符,并在不等待Enter的情况下立即对其进行处理。 另外,我想将字符区分大小写。 write-host("Please press a or A:") $cho
我正在编写一个小型 C# 控制台应用程序。 我希望应用程序等待用户关于 Y 或 N 按键的指令(如果按下任何其他键,应用程序会忽略这一点并等待 Y 或 N,然后运行依赖于按键的代码)是或否的答案。 我
我正在尝试按 Q 来退出控制台窗口中的内容。我不喜欢我当前的实现。有没有办法可以异步或使用回调从控制台获取 key ? 最佳答案 您可以从另一个线程调用Console.ReadKey(),这样它就不会
一开始我会说我是 C# 和编程的新手。尝试尽可能多地学习一个人。我的第一个学习项目很简单。使用“W、S、A、D”在 10x10 阵列中移动。这是让用户通过阵列移动他的角色的“游戏”。问题是只要他的位置
请看original Microsoft example . 在第二个例子中我们发现如下代码: // The simplest UI thread ever invented. Task.Run(()
我正在尝试使用 ReadKey() 获取密码字段,因此它不会显示在我在 Ubuntu 上运行的 .net 核心应用程序的控制台中。 这是代码: while (true) { var key =
这个问题在这里已经有了答案: How to add a Timeout to Console.ReadLine()? (33 个答案) 关闭 9 年前。 我构建了一个简单的控制台应用程序,我需要为用
我正在制作华氏温度到摄氏温度的转换器(一个非常简单的转换器,因为我是新手),当我使用 Console.ReadKey() 时,它会显示用户按下的字符屏幕。有没有办法隐藏用户输入? cki = Cons
我有一个通过 TextReader 接受输入的类,并将允许该类从控制台或文本框接收输入。 以下是我正在尝试做的一个非常基本的示例: using System.IO; class TestReader(
我正在用 perl 编写一个简单的 motd 脚本,它解析来自特定网站的消息并将它们显示在终端屏幕的中央。 为了获得终端的宽度,我使用了 CPAN 模块 Term::ReadKey。 现在我用 调用这
当我在 Visual Studio 2015 的 C# 交互窗口中键入 Console.Readkey() 时,它只是挂起(键入任意数量的字符似乎没有任何作用)。这是一个不正确的设置,还是我不了解交互
我使用 Console.ReadKey() 从多个不时变化的选项中进行选择。在这个初始代码片段之前有一个 for 循环,它将出现次数计入 int 类型的计数器变量。 重点是使用 Console.Rea
大多数编程书籍都会告诉您使用 Console.ReadKey() 来暂停控制台,但是有更好的选择吗? Console.WriteLine("Press any key to continue.");
输出看起来像这样: ] [ Your input is: ffffffwwqqqwffasfffffffw > 当您使用 BACKSPACE 时,这本来是不可能的,为什么会这样 u
有什么方法可以同时检测 Readline 和 ReadKey,以便在大多数情况下它的行为类似于 readline,除了应该检测的一些特殊键输入外? 我需要一些“并行”实现来引入同时性。下面的代码是同步
我正在尝试运行我的代码,直到按下 Esc。因此我在我的控制台中使用 ReadKey var input = Console.ReadKey(); do { } while (input.Key !=
在多线程程序中使用 Console.ReadKey() 时遇到了一个奇怪的问题。 我的问题是:为什么会这样?这是一个错误,还是因为我在滥用 Console?(请注意,控制台应该是线程安全的,accor
以下代码是一个众所周知的示例,用于显示调试版本和发布版本之间的区别: using System; using System.Threading; public static class Program
我是一名优秀的程序员,十分优秀!