Ejemplo n.º 1
0
unsigned WINAPI SetCpuAffinity_tt(void * pParam)
{
    DWORD_PTR   mask = 0L;
    int         cpu_z = GetNumberOfWorkers();
    /* 设置进程总是在除开CPU0之外的其他核心运行 */
    switch (cpu_z)
    {
    case 2:
        mask = 0x02;
        break;
    case 3:
        mask = 0x06;
        break;
    case 4:
        mask = 0x0e;
        break;
    case 6:
        mask = 0x3e;
        break;
    case 8:
        mask = 0xfe;
        break;
    default:
        break;
    }
    if (mask)
    {
        SetProcessAffinityMask(GetCurrentProcess(),mask);
    }
    return (1);
}
Ejemplo n.º 2
0
unsigned WINAPI SetCpuAffinity_tt(void * pParam)
{
	int     cpu_z = 0;
	HANDLE	hc = (HANDLE)pParam;
	if (hc)
	{
		SuspendThread(hc);
		cpu_z = GetNumberOfWorkers();
		if ( !cpu_z )
		{
			cpu_z = read_appint(L"General",L"ProcessAffinityMask");
		}
		if ( cpu_z>5 )
		{
			SetThreadAffinityMask(hc, 0x1c); 
		}
		else if ( cpu_z>3 )
		{
			SetThreadAffinityMask(hc, 0xe); 
		}
		else if ( cpu_z>2 )
		{
			SetThreadAffinityMask(hc, 0x6); 
		}
		else
		{
			SetThreadAffinityMask(hc, 0x1); 
		}
		ResumeThread(hc);
		CloseHandle(hc);
	}
	return (1);
}