我想在可移植类库项目中使用Interlocked类的方法,并且根据MSDN(
here),可移植框架中支持Interlocked类.不幸的是,似乎只有部分Interlocked方法可用.例如,我既不能找到“Read”也不能找到Exchange(Int64,Int64).
有谁知道他们是隐藏在其他地方还是没有实施?如果是这样,为什么? 最佳答案 可移植库是一种识别您所定位的平台上可用的公共(子集)表面区域的方法,它不会在此子集之上或之外公开或添加其他API.这就是一些成员不同的原因.
当MSDN说便携式支持给定的API时,它实际上意味着当您选择某种平台组合时,API可用.例如,在这种情况下Interlocked.Read在选择.NET Framework&创建新的可移植类库时,对话框中的Windows应用商店(以及其他任何内容).不幸的是,我们知道这在文档中是令人困惑的,我们正在努力在将来改进它.
在Visual Studio 2012的RTM和down-level tools的当前RC版本中,我们实际公开了Interlocked方法的Int64版本,但是,我们遇到了一个在面向Windows Phone时暴露它们的错误.这是不正确的,它们在Windows Phone中不起作用(它们在调用时抛出NotSupportedException).