更新: 問題が見つかりました - 恥ずかしい/皮肉なことに、メインスレッドではなく、間違ったスレッドで SetThreadAffinity() を呼び出していました (プログラムの起動が面倒です...)
今はすべて機能しています。すべての助けに感謝します! 私の小さなデバッグセッションに参加するために、みんなに賛成票を投じました。
更新: 問題が見つかりました - 恥ずかしい/皮肉なことに、メインスレッドではなく、間違ったスレッドで SetThreadAffinity() を呼び出していました (プログラムの起動が面倒です...)
今はすべて機能しています。すべての助けに感謝します! 私の小さなデバッグセッションに参加するために、みんなに賛成票を投じました。
このように呼び出しても違いはありますか?:
DWORD_PTR mask = 1;
SetThreadAffinityMask(GetCurrentThread(), mask);
スレッド ハンドルに必要なアクセス権がありますか?:
Windows Server 2003 および Windows XP/2000 : ハンドルには、THREAD_SET_INFORMATION および THREAD_QUERY_INFORMATION アクセス権が必要です。
使用してから数ヶ月経ちますが、その機能に問題はありません。
以下の点を確認してください。
あなたがしていることは正しいようです。代わりにSetThreadIdealProcessorを試してみてください。