我应该在我的C++11/CLI程序中使用哪一个
c++11线程和.net线程的优点和缺点是什么?
发布于 2012-06-16 19:58:26
我的程序只是windows,是用.net构建的。
考虑到托管语言通常更喜欢开发人员的生产力,而不是性能(在冲突中),我认为托管线程可能更有利于开发人员。此外,垃圾收集是众所周知的生产力特性.
你对性能和/或控制有极端的需求吗?如果没有,我推荐托管代码和托管线程处理。
发布于 2012-06-16 19:32:38
C++11将是一种基于标准、独立于平台的线程处理方式。如果您需要跨平台工作,这一点很重要。
使用.Net进行线程处理通常会将应用程序与操作系统(Windows)绑定。这具有一些优点,例如垃圾收集(在标准C++中是错误的)。但是,请注意,您可能需要在应用程序中附带.Net框架。跨版本的框架问题并不少见。
发布于 2012-06-16 21:07:05
如果您询问的是托管代码还是本地代码,那么尽可能多地使用托管代码C#,这是一个更好的开发人员体验。此外,.NET 4支持优秀的API来帮助多线程,请参阅任务并行库(TPL)和并发集合支持。
一般的建议是尽可能多地使用托管代码,然后只在需要时对本机使用互操作,以解决不太适合托管解决方案的问题。
如果您询问如何使用C#和C++/CLI,那么请使用C#。这两种语言都是CLI (托管)语言,但C++/CLI更难使用,最好用于某些托管/本机边界场景。此外,C++/CLI不支持Intellisense (至少对于VS2010,现在可能在2012年支持?)
https://stackoverflow.com/questions/11066391
复制相似问题