2

SetProcessAffinityMask()関数はマスクを受け入れるDWORDため、32を超えるプロセッサを搭載したシステムでは正しく使用できません。

どういうわけか問題に対処することを目的としているように見えSetThreadGroupAffinity()ますが、その使用法を説明する有用なコードサンプルを見つけることができますか?

SetProcessAffinityMask()/GetProcessAffinityMask()を使用して32を超えるプロセッサを搭載したシステムにプログラムを適合させるにはどうすればよいですか?コードサンプルはありますか?

4

1 に答える 1

2

まず第一にSetProcessAffinityMask()受け入れますDWORD_PTR。OS の 32 ビット バージョンは 32 を超えるコアをサポートしていないため、これは 64 ビット OS について話していることを意味します。したがって、 の実際の制限SetProcessAffinityMask()は 64 です。

64 を超える処理方法については、64 を超えるプロセッサを搭載したサポート システムのホワイトペーパーで、知っておくべきことがわかると思います。


編集

コメントで、コードが 64 ビット OS で実行されている 32 ビットであると述べています。

私が理解しているように、64 ビット OS 上の 32 ビット エミュレーター内で実行している場合、非常にきめ細かい制御のサポートが制限されます。これらの新しい機能を利用したい場合は、エミュレーターの使用をやめる必要があると想定されています。

于 2011-03-23T15:03:11.200 に答える