windows提供某些事件发生后就调用某回调函数,那么如果当此事件发生时,其他线程也在运行,系统是如何调用回调函数的呢???是不是通过内核线程进行调用?~?~~可以写一个简单的例子么?~?~

解决方案 »

  1.   

    windows在自己的线程里调回调函数
      

  2.   

    当发生某种事件时,系统或其他函数将会自动调用你定义的一段函数。回调函数在windows编程使用的场合很多,比如Hook回调函数:MouseProc,GetMsgProc以及EnumWindows,DrawState的回调函数等等,还有很多系统级的回调过程
    系统回调函数应该是内核线程调用的,比如WINPROCMSG   msg; 
    while(GetMessage(&msg,NULL,0,0)) 

        TranslateMessage(&msg); 
        DispatchMessage(&msg); 
    } DispatchMessage可能就是这样的 
    OS: void   DispatchMessage(LPMSG   lpMsg) 

        DoSomething; 
        WndProc(lpMsg-> message,lpMsg-> wParam,lpMsg-> lParam);//我们的回调 
     DoSomething;