首先搞了个SetTimer计时器
为什么用OnKeyDown响应一个键,这个键按下去中执行了一个delay函数void delay()
{
    for(i=0;i<100000000;i++);
}
运行发现OnTimer里面响应SetTimer里面那段代码,每次都需要等待delay完成后才能继续执行,难道计时器不是独立的吗,不管我现在运行什么,计时器一到时间就应该运行所需的代码? 

解决方案 »

  1.   

    OnTimer中应该迅速返回,不要阻塞..
      

  2.   

    SetTimer创建的计时器是非异步的,用线程做吧
      

  3.   

    运行发现OnTimer里面响应SetTimer里面那段代码,每次都需要等待delay完成后才能继续执行,难道计时器不是独立的吗,不管我现在运行什么,计时器一到时间就应该运行所需的代码?  
    ========
    定时器不是多线程的,它还是单线程的,所以还是会阻塞。用多线程吧,并不难。
      

  4.   

    提示几个函数
    CreateTimerQueue
    CreateTimerQueueTimer
    ...可以用参数指定是多线程还是单线程,不过其本身就另开了一个线程, 所以不会因为你的界面线程阻塞而得不到执行
      

  5.   

    学啊
    这个系列不错
    http://www.vckbase.com/document/viewdoc/?id=1704
      

  6.   

    ontimer和窗口消息同步,楼主注意了,可以用线程
      

  7.   

    首先你要明白,windows的程序是属于消息驱动的,上面一个消息没有返回,程序不会读下一个消息,
    因为消息通常放入消息队例,程序去这个队例读取 //那个通常不知道用得对不对以上是个人见解,欢迎砖块