thread-safety - C++/CLI 中的 CRITICAL_SECTION

标签 thread-safety c++-cli

在使用 native C++ 进行编码时,我经常使用 CRITICAL_SECTION 来创建线程安全代码(或者至少是我认为线程安全的代码......)。在C++/CLI中,我想也可以使用CRITICAL_SECTION?这样做明智吗?如果没有,为什么?还有什么替代方案?

最佳答案

由于某些实现(例如 IIRC、SQL Server)将这些内容实现为在不同线程上运行的纤程,因此他们对使用非托管线程 ID 提出了警告,因此我也会避免使用非托管关键部分。

我见过的.Net 代码通常使用 System::Threading::Monitor::Enter()Monitor::Exit() 作为其关键部分(在 C# 中可以方便地用 lock 关键字封装)。否则,您也可以使用托管互斥体。

关于thread-safety - C++/CLI 中的 CRITICAL_SECTION,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16934370/

相关文章:

c# - 如何使用 c++/cli 在非托管代码中注册 c# 事件

c++ - 当我收到此错误 : <mutex> is not supported when compiling with/clr 时如何实现非托管线程安全集合

c# - C# 自动实现的静态属性是线程安全的吗?

ios - 这个 GCD 实现的 getter setter 线程安全并且比@synchronized 工作得更好吗?对象

multithreading - 多线程Redis Cluster

c# - 无法在 C++/CLI 中找到入口点

c++ - Visual C++ CLR 设计器在第二次运行项目和编辑设计时总是显示 0x8000000A 错误

c# - ConcurrentDictionary 对象 - 通过不同的线程读写

c# - C#中的基本算术运算是原子的吗

c# - 在 C++/CLI 中包装非托管 C++ 模板以供 C#/.NET 使用