Windows Game Loop 50% CPU en Dual Core

El ciclo del juego solo está utilizando el 50% del uso de la CPU, todavía no he realizado ningún trabajo de renderizado. ¿Que estoy haciendo aqui?

        while(true)
        {
            if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
            {
                    if(msg.message == WM_QUIT || 
                           msg.message == WM_CLOSE || 
                           msg.message == WM_DESTROY)
                            break;

                    TranslateMessage(&msg);
                    DispatchMessage(&msg);                   
            }
            else
            {
                    //Run game code, break out of loop when the game is over

            }
        }

Respuestas a la pregunta(12)

Su respuesta a la pregunta