加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 根据CPU架构,运行时是否可以有条件代码?

发布时间:2020-12-15 17:21:14 所属栏目:百科 来源:网络整理
导读:我正在使用.Net 4.5(预览… 4对于这个问题的目的是好的).我正在做线程工作. 根据我的研究,我知道x86 CPU具有强大的内存模型,这意味着写入不会被重新排序.这使释放锁定安全.对于具有弱内存模型的Itanium CPU,情况并非如此. 我理解易失性,内存障碍和执行重新排
我正在使用.Net 4.5(预览… 4对于这个问题的目的是好的).我正在做线程工作.

根据我的研究,我知道x86 CPU具有强大的内存模型,这意味着写入不会被重新排序.这使释放锁定安全.对于具有弱内存模型的Itanium CPU,情况并非如此.

我理解易失性,内存障碍和执行重新排序原则.

理想情况下,如果CPU是Itanium,则在关键点插入内存屏障,但如果是x86则不插入内存屏障.是否有可能动态地执行此操作,就像JIT处理的运行时编译器指令一样?

如果没有,我意识到我需要为这两个平台分别构建.在这种情况下,如果没有2套C#文件,而只是简单地更改目标,最优雅的方法是什么?

解决方法

回答你的主要问题;我认为目前不可能将CIL指令有条件地编译为基于平台的机器指令(除了JIT编译器中的内容之外).

从一组源创建两个(或更多)构建的主要工具仍然是preprocessor directives.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读