+ -
当前位置:首页 → 问答吧 → 关于 罗云彬书上的3个疑惑!

关于 罗云彬书上的3个疑惑!

时间:2011-03-15

来源:互联网

1.假如任务A,轮到cpu时间片时,任务A消息队列里没有消息,那么程序停留在Getmessage内部
,Getmessage在windows内部等待,这时由windows没收这20ms(cpu时间片)。
而同样情况,任务A中执行的消息循环函数变成PeekMessage时,任务A拱手让出20ms。

请问个情况1下任务A轮到cpu时间片时,Getmessage在windows内部等待是什么意思?

2.invoke PeekMessage,addr @stMsg,NULL,0,0,PM_REMOVE
  .if eax
  >>消息处理<<
  .else
  >>其他工作<<  
  .endif
当PeekMessage正常调用,返回eax为0,表明是程序空闲时间。
*******************************************************************************
  程序可以做>>其他工作<<,但执行时间不能过长,应该不超过10ms(cpu时间片为20ms)。
如果要处理很长时间的工作,就应该将它分为很多小部分,以便用足够的频率用PeekMessage
来检查消息。
*******************************************************************************
两行星号间的句子怎么理解?

3.说明:sz开头的是字符串,影响不大!
书上:invoke wsprintf,addr szBuffer,addr szStart,addr szText
我的理解:invoke wsprintf,addr szBuffer,addr szStart
我觉得书上的写法和函数原型不一致,但可以运行。请问为什么?

作者: crazylouter   发布时间: 2011-03-15

1.个情况1下任务A轮到cpu时间片时,Getmessage在windows内部等待是什么意思?

答:相当暂停一下,但是cpu是不会暂停的,是用执行nop这些指令来代替,也就是没有执行别的指令、

2.如果其它工作超过20ms,cpu就执行别的进程了,这个工作就不能完成了。。只执行到一半。。

3.没关系的

作者: MSOKD   发布时间: 2011-03-21

热门下载

更多