Win10和Win7对线程的处理机制不一样了吗?

最近刚开始接触windows程序设计,然后分别在Win10的VS2017运行和Win7的VC6.0
运行同一段代码,但是结果却大不一样?
有人可以解答一下吗,? 在这里谢过了。
运行结果:
Win10 VS2017环境:
图片说明
win7 VC6.0环境
图片说明

然后下面是代码:

 // 两个优先级不同的线程.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <windows.h>
#include <stdio.h>

DWORD WINAPI ThreadIdle(LPVOID lpParam);    //设置空闲线程
DWORD WINAPI ThreadNormal(LPVOID lpParam);  //设置正常线程



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;
}


DWORD WINAPI ThreadIdle(LPVOID lpParam)   //设置空闲线程
{
    for (size_t i = 0; i < 10; i++)
    {
        printf("Idle Thread id runing!  is:%5d\n", i);
    }

    return 0;
}

DWORD WINAPI ThreadNormal(LPVOID lpParam)  //设置正常线程
{
    for (size_t i = 0; i < 10; i++)
    {
        printf("Norma Thread id runing!  is:%5d\n", i);
    }

    return 0;
}

线程的运行是完全不确定的,和环境有关,也有随机性。win10和win7在线程优先级和调度上的确有不同,但是这未必是你程序不一致的唯一或确定因素。

win10和win7在线程优先级和调度上的确有不同,但是应该不是导致你问题的唯一原因,可能还受到其他因素的影响。