Я использую .Net 4.5 (предпросмотр ... 4 подходит для целей этого вопроса).Я занимаюсь многопоточностью.
Основываясь на своих исследованиях, я знаю, что процессоры x86 имеют сильную модель памяти, что означает, что записи не будут переупорядочены.Это делает освобождение замков безопасным.Это не относится к процессорам Itanium, которые имеют слабую модель памяти.
Я понимаю изменчивость, барьеры памяти и принципы переупорядочения выполнения.
В идеале мне нужно вставить барьеры памяти в ключочки , если , то процессор Itanium, но не если это x86.Возможно ли сделать это динамически, как в директивах компилятора времени выполнения, которые обрабатывает JIT?
Если нет, я понимаю, что мне понадобятся отдельные сборки для двух платформ.В таком случае, каков самый элегантный способ сделать это, не имея 2 набора файлов C #, а просто изменив цель?