最近在看《windows程序设计》一书,第三章中有一个关于线程优先级的例子,源代码如下:#include<windows.h>
#include<iostream>DWORD WINAPI ThreadIdle(LPVOID lpParam)            //线程的入口函数,低优先级
{
    int i = 0;
    while(i++ < 10)
    {
        printf("this is a Idle thread\n");
    }
    return 0;
}DWORD WINAPI ThreadNormal(LPVOID lpParam)    //线程的入口函数,高优先级
{
    int i = 0;
    while(i++ < 10)
    {
        printf("this is a Normal thread\n");
    }
    return 0;
}int main()
{
    DWORD dwThreadID;
    HANDLE h[2];
    h[0] = ::CreateThread(NULL,0,ThreadIdle,NULL,CREATE_SUSPENDED,&dwThreadID);   //创建低优先级线程并挂起
    ::SetThreadPriority(h[0],THREAD_PRIORITY_IDLE);                 //设置优先级 
    ::ResumeThread(h[0]);                                                                 //唤起线程    h[1] = ::CreateThread(NULL,0,ThreadNormal,NULL,0,&dwThreadID);             //创建高优先级线程    ::WaitForMultipleObjects(2,h,TRUE,INFINITE);                     ::CloseHandle(h[0]);
    ::CloseHandle(h[1]);                                                                         
    return 0;
}书中所用的编译器是vc6.0,我用的是vs2008,但是无法达到书中的效果(高优先级的线程先执行) 我所看到的效果是两个线程出现的顺序是随机的,每次结果都不同请问这是为什么,谢谢