每次按下按钮运行线程时,我都会尝试将线程的亲和性设置为某个掩码。打开窗户后我第一次这样做会起作用,但在那之后就不行了。但是,我的OutputDebugString
代码产生的输出表明它已被更改。我试过使用CloseHandle()
,但似乎没有效果。还有别的可能吗?
void CSMPDemoDlg::OnBnClickedButton1()
{
// Start thread
DWORD_PTR affinityMask = (static_cast<DWORD_PTR>(1) << NumberOfCores ) - 1;
HANDLE WorkThreadHandle = CreateThread(NULL, 0, WorkThread, &tp, 0, NULL);
DWORD_PTR z = SetThreadAffinityMask(WorkThreadHandle, affinityMask);
if (z!=0) {
char bb[100];
sprintf_s(bb, 100, "Affinity changed from %d to %d", z, affinityMask);
OutputDebugString(bb);
}
}