我使用Logitech Cordless Desktop MX3100键盘已经有一段时间了。我从来没有真正遇到过任何问题,除了偶尔的拼写错误。
然而,我注意到我倾向于使用“Laod”而不是“Load”,比任何其他错别字都更频繁。当它开始让我紧张时,我决定做一些测试。
我发现当我写小写“load”时,我永远不会打错字。全部大写,或者只是大写 L,我经常会打错字。我的实际(非常科学)测试可能最好通过显示输出来描述:
moatmoatmoat
MoatMoatMoat
loatloatloat
LaotLaotLaot
loafloafloaf
LaofLaofLaof
hoathoathoat
HoatHoatHoat
hoadhoadhoad
HoadHoadHoad
lortlortlort
LrotLrotLrot
Run Code Online (Sandbox Code Playgroud)
我发现每当按下 shift 时,如果下一个字符是“o”,输入大写的“L”会导致明显的滞后,与任何其他键的滞后相比:
High "o" lag:
LoLoLoLoLoLo
No "a" lag:
LaLaLaLaLaLa
No lag for neither "o" nor "a":
lolololololo
lalalalalala
Run Code Online (Sandbox Code Playgroud)
通过意识到这一点,我恢复了一点点理智,因为我知道我不会患上帕金森病。我实际上打字正确,滞后只是错误地解释了它。
现在,真正困扰我的是我无法理解这是如何发生的。我实际上按物理顺序键入的是:L - o - a - d,然而,“a”在“o”之前输出,即使“o”在“a”之前被按下。
因此,当键盘正在处理“Lo”组合时,“a”被优先处理并在“o”完成处理之前插入,从而导致 Laod 而不是 Load。这只会在输入“Lo”时发生,而不是在输入小写“lo”时发生。
此问题可能源于键盘硬件、接收器硬件或键盘软件驱动程序。但是,无论故障位置如何,我都无法想象除了 FIFO 队列之外如何将其实现为任何东西。一般的延迟,当然,我可以忍受,尽管我会生气。但是延迟会对不同的键产生不同的影响,甚至导致不可预测的结果——这没有任何意义。
我通过切换到有线键盘解决了这个问题。我就是无法摆脱它;什么样的错误/错误/场景会导致这样的情况?
编辑:有人建议我停止喝红牛并坚持喝水。虽然这实际上可能有助于解决问题,但我真的不是在寻找这样的解决方案。我对解释这种情况如何发生更感兴趣,因为我无法想象任何可能导致这种行为的可行技术解决方案。