按键关闭事件在windows中持续多长时间?
我一直在想,当我按下键盘上的某个键时,windows会将其视为按键关闭事件,然后我的程序会询问windows是否有这样的事件,windows会回答 但是,这个活动到底要持续多久?我的意思是,在现实世界中,我们不会担心这一点,因为我们的处理器每秒可以处理许多操作,比我们可以点击的速度快得多,但如果我可以以光速点击呢按键关闭事件在windows中持续多长时间?,windows,architecture,language-agnostic,programming-languages,Windows,Architecture,Language Agnostic,Programming Languages,我一直在想,当我按下键盘上的某个键时,windows会将其视为按键关闭事件,然后我的程序会询问windows是否有这样的事件,windows会回答 但是,这个活动到底要持续多久?我的意思是,在现实世界中,我们不会担心这一点,因为我们的处理器每秒可以处理许多操作,比我们可以点击的速度快得多,但如果我可以以光速点击呢 那么,按键按下是如何精确计时的呢?输入事件(如按键按下)会被缓冲。当Windows收到来自键盘驱动程序的通知时,它将事件存储在消息队列中。它由拥有前景窗口的线程所拥有。无论程序检索它需
那么,按键按下是如何精确计时的呢?输入事件(如按键按下)会被缓冲。当Windows收到来自键盘驱动程序的通知时,它将事件存储在消息队列中。它由拥有前景窗口的线程所拥有。无论程序检索它需要多长时间,它都会在那里。它需要调用GetMessage()或PeekMessage() 所需时间完全不可预测,这取决于程序的UI线程的响应速度。或者换句话说,它发送接收到的消息并再次调用GetMessage()以检索下一条消息的速度有多快。UI线程陷入昏迷状态一段时间并不罕见。即使在快速处理器上,执行返回数千行并等待其结果的数据库查询的写得很差的程序也很常见
缓冲确保这不会导致问题。无论用户键入的速度有多快,他的击键都不会丢失。输入事件(如按键按下)会被缓冲。当Windows收到来自键盘驱动程序的通知时,它将事件存储在消息队列中。它由拥有前景窗口的线程所拥有。无论程序检索它需要多长时间,它都会在那里。它需要调用GetMessage()或PeekMessage() 所需时间完全不可预测,这取决于程序的UI线程的响应速度。或者换句话说,它发送接收到的消息并再次调用GetMessage()以检索下一条消息的速度有多快。UI线程陷入昏迷状态一段时间并不罕见。即使在快速处理器上,执行返回数千行并等待其结果的数据库查询的写得很差的程序也很常见
缓冲确保这不会导致问题。无论用户键入的速度有多快,他的击键都不会丢失。输入事件(如按键按下)会被缓冲。当Windows收到来自键盘驱动程序的通知时,它将事件存储在消息队列中。它由拥有前景窗口的线程所拥有。无论程序检索它需要多长时间,它都会在那里。它需要调用GetMessage()或PeekMessage() 所需时间完全不可预测,这取决于程序的UI线程的响应速度。或者换句话说,它发送接收到的消息并再次调用GetMessage()以检索下一条消息的速度有多快。UI线程陷入昏迷状态一段时间并不罕见。即使在快速处理器上,执行返回数千行并等待其结果的数据库查询的写得很差的程序也很常见
缓冲确保这不会导致问题。无论用户键入的速度有多快,他的击键都不会丢失。输入事件(如按键按下)会被缓冲。当Windows收到来自键盘驱动程序的通知时,它将事件存储在消息队列中。它由拥有前景窗口的线程所拥有。无论程序检索它需要多长时间,它都会在那里。它需要调用GetMessage()或PeekMessage() 所需时间完全不可预测,这取决于程序的UI线程的响应速度。或者换句话说,它发送接收到的消息并再次调用GetMessage()以检索下一条消息的速度有多快。UI线程陷入昏迷状态一段时间并不罕见。即使在快速处理器上,执行返回数千行并等待其结果的数据库查询的写得很差的程序也很常见
缓冲确保这不会导致问题。无论用户键入的速度有多快,他的击键都不会丢失。我不确定我是否理解这个问题。你能举个例子吗?如果你是说WM_KEYDOWN,事件是排队的,而不是轮询的。事件将一直保留,直到从队列中读取为止。@Gabe:基本上,我的意思是-当我的键盘向我的电脑发送信号时,它将在那里停留多长时间?;)我不确定我是否理解这个问题。你能举个例子吗?如果你是说WM_KEYDOWN,事件是排队的,而不是轮询的。事件将一直保留,直到从队列中读取为止。@Gabe:基本上,我的意思是-当我的键盘向我的电脑发送信号时,它将在那里停留多长时间?;)我不确定我是否理解这个问题。你能举个例子吗?如果你是说WM_KEYDOWN,事件是排队的,而不是轮询的。事件将一直保留,直到从队列中读取为止。@Gabe:基本上,我的意思是-当我的键盘向我的电脑发送信号时,它将在那里停留多长时间?;)我不确定我是否理解这个问题。你能举个例子吗?如果你是说WM_KEYDOWN,事件是排队的,而不是轮询的。事件将一直保留,直到从队列中读取为止。@Gabe:基本上,我的意思是-当我的键盘向我的电脑发送信号时,它将在那里停留多长时间?;)