【发布时间】:2019-08-15 17:24:54
【问题描述】:
这里有整个超级简单的 C# 控制台应用程序:
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
int left = 0;
Console.SetCursorPosition(++left, 0);
while (true)
{
ConsoleKeyInfo stisknutaKlavesa = Console.ReadKey(true);
if (stisknutaKlavesa.Key == ConsoleKey.RightArrow)
{
Console.SetCursorPosition(++left, 0);
Console.Write("#");
}
}
}
}
}
说明:当我按下右键(并按住!!)时,它会快速写入一个哈希值,然后暂停,然后它会流畅地继续写入另一个哈希值。
我怎样才能摆脱这种停顿?我一直在我的一个 winform 应用程序中处理相同的问题,但为简单起见,我将其发布在此控制台应用程序中。
我已经找到了一些关于这个主题的答案,但它们都是关于 javascript (jquery) 的,我不明白如何在我的 c# 项目中应用它。
我也不想以异步方式解决它。请问有这样的解决办法吗?
【问题讨论】:
-
暂停是指等待
Console.ReadKey中的输入吗? -
事实上我不知道那个停顿是什么。因为它只出现在第一个和第二个哈希之间,并且没有其他等待。为什么当我按下右箭头并按住它时它稍后不等待?
-
您的意思是按键之间的“键盘重复延迟”被解释为单次按下还是按住时重复?如果是这样,这是一个系统范围的设置,这里还有一个关于解决它的问题stackoverflow.com/questions/1172621/…
-
谢谢史蒂夫!我会探索它,但即使现在我看到正确的答案是使用定时器,这(我猜)意味着它不同步。但是感谢那个链接。
标签: c#