windows – FLS vs TLS,我可以使用光纤本地存储代替TLS吗?
我的库中有用于win-threads和pthreads的可移植TLS(线程本地存储)代码,但是在WinRT上没有TlsXXX api.但是,there is FlsXXX api that serves almost the same purpose为
the TLS api.
来自MSDN:
那么,这是否意味着我可以简单地使用FlsXXX api作为替代品(我不使用光纤,我不使用__thread说明符用于变量,我直接使用api). 解决方法
这是你在商店应用程序中无法做到的,不错的鸡蛋问题.这是SDK文档所说的,但实际上并不是Microsoft CRT所做的,它使用FlsAlloc()但从不在任何地方调用ConvertThreadToFiber / Ex().所以你没事,只是从不调用CreateFiber(). 是的,如果你不创建光纤according to the SDK,FLS与TLS相同:
您还可以看到在CRT中使用,请查看VS2012 vc / crt / src / Platform.cpp源代码文件__TlsAlloc()函数.当_CRT_APP是#defined时,你会看到它回退到FlsAlloc.它适用于VCLibs构建,即Store应用程序中使用的构建. 没有明确记录,但非常有力地证明这很好. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- NodeJS基础API-path相关的问题basename,extname,dirname,pa
- 为Windows创建Ruby应用程序
- haskell – 可以在Windows上构建?
- windows – 如何在Visual Studio中使用OpenSSL
- wpf – 如何在ListView中的两列中显示项目
- 如何在Windows 8上从PowerShell运行Metro应用程序?
- windows-runtime – 如何显示UIElement但没有UI交互(触摸,点
- .Net 3.5 SP1的脱机安装程序无法正常工作
- 将目录添加到Windows Path变量是否会影响性能?
- winforms – 在Windows应用程序中调用webservice