我在ontimer里面调用了一个比较耗时的函数,但是我的timer时间设置的比较短.
同时会有多个操作来到操作这个回调函数.不得不做同步.但是我的程序除了主线程
未创建任何线程.应该是windows里面或者mfc里面自动实现的多线程吧.心中疑惑.

解决方案 »

  1.   

    OnTimer是否由API中的SetTimer()设定?
    如果是的话,他不是多线程的,也就是说,它本身是由消息循环接调用 的。
    如设置了回调,此由::GetMessage()或::PeekMessage()自动你的回调。
      

  2.   

    ontimer是不会阻塞的,也就是你的处理没有完成的话,并不会阻塞下一个ontimer的消息。
      

  3.   

    ontimer是不会阻塞的,也就是你的处理没有完成的话,并不会阻塞下一个ontimer的消息。
    ?????CWnd::OnTimer还可以重入?没听说过呢。
    这种情况应该使用工作者线程。定时启动线程,但如果已经启动,则放弃此次定时器的处理。
      

  4.   

    to DentistryDoctor
    你大可以试试么大概了解大家的意思了.