質問です。

古いアプリなどをデュアルコア環境で動かす際、うまく動かず(大抵の場合、動作が遅くなる)、使用コアを一つに制限することでまともに動く。
という現象が度々見られるそうです。
ttp://www.atmarkit.co.jp/fwin2k/win2ktips/862affinity/affinity.html

これは、プログラムする側としては何が原因なのでしょうか?
つまり、どういう風に気をつければ、自分のプログラムがこの現象を引き起こさないようにできるのでしょうか?

SetProcessAffinityMask で1コアしか使わないようにすればいい。という考えもできますが
「2コア使われてもまともに動く」というほうが前向きな解決法な気がします。
(そもそも、原因がわからないまま1コア動作にすりゃいいやというのはモヤモヤします)