Hmmm, you are failing to see how horribly broken and wrong your method is...
Code:
#include <Windows.h>
#include <stdio.h>

const DWORD period = 100;
DWORD numFooCalls = 0;

DWORD TicksElapsed(DWORD start, DWORD end)
{
    if (end < start)
        return (0xFFFFFFFFUL - start) + end;
    return end - start;
}

DWORD foo() 
{
    static DWORD lastCall = 0;
    DWORD curCall = GetTickCount();
    DWORD callsMissed = 0;
    if (lastCall)
    {
        DWORD elapsed = TicksElapsed(lastCall, curCall);
        if (elapsed > (period * 2))
        {
            callsMissed = (elapsed / period) - 1;
            printf("Missed: last=%u, now=%u, diff=%u, #missed=%u\n",
                   lastCall, curCall, elapsed, callsMissed);
        }
    }
    lastCall = curCall;
    Sleep(10); // change this however you like...
    ++numFooCalls;
    return callsMissed;
}

int main()
{
    const DWORD missedCallsBeforeExit = 10;
    DWORD numMissed = 0;
    foo();
    while (numMissed < missedCallsBeforeExit)
    {
        // may take a while since we have to get lucky just to call foo() again
        if (GetTickCount() % period == 0)
            numMissed += foo();
    }

    printf("Number of calls = %u\n", numFooCalls);
    return 0;
}
>> ... It merely allows the system to multitask without racing the CPU.
I provided a link in post #9, describing how and why it can in fact race the CPU.

>> And yes I've used it. And yes it works.
It's completely irrelevant if you've used it or if it's worked for you in the past. What is relevant is that it's undefined behavior according to any C/C++ standards that include multi-threading.

gg