shutupATnight
2015-02-02 20:32:15 +08:00
我理解的2种:
第一种:
:死循环开始
键盘有输入么?
有:do_something()
回到循环开始
在这时候你的程序是死锁状态(根据操作系统的不同,会出现是你的程序完全使用CPU资源 or 会有部分 CPU 时间片被分配到其它任务上)
第二种:
我的程序.Init开始()
call 操作系统.IO处理.如果有键盘输入时怎么办( 请调用下面的 on_keyboard_event )
我的程序.Init结束
我的程序.on_keyboard_event开始()
do_something()
我的程序.on_keyboard_event结束
简单来说 Init 函数被调用后,操作系统不会再给你的程序分配时间片。直到有键盘输入了,操作系统会调用 on_keyboard_event 函数通知你。你的程序没有被挂起,只是操作系统没有分配 CPU 去执行你的程序了。
当然实际情况会更复杂,因为可能你的图形界面上有需要定时刷新的东西,背后需要接受网络消息,你有一个一直在死循环的线程等。