我正在使用.Net 4.5(预览… 4对于这个问题的目的是好的).我正在做线程工作.
根据我的研究,我知道x86 cpu具有强大的内存模型,这意味着写入不会被重新排序.这使释放锁定安全.对于具有弱内存模型的Itanium cpu,情况并非如此.
我理解易失性,内存障碍和执行重新排序原则.
理想情况下,如果cpu是Itanium,则在关键点插入内存屏障,但如果是x86则不插入内存屏障.是否有可能动态地执行此操作,就像JIT处理的运行时编译器指令一样?
如果没有,我意识到我需要为这两个平台分别构建.在这种情况下,如果没有2套C#文件,而只是简单地更改目标,最优雅的方法是什么?
解决方法
回答你的主要问题;我认为目前不可能将CIL指令有条件地编译为基于平台的机器指令(除了JIT编译器中的内容之外).
从一组源创建两个(或更多)构建的主要工具仍然是preprocessor directives.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。