gpt4 book ai didi

multithreading - 托管 C++ 中的 C# 的 lock()

转载 作者:行者123 更新时间:2023-12-03 04:17:44 26 4
gpt4 key购买 nike

托管 C++ 是否有与 C# 等效的 lock()和VB的SyncLock?如果可以,我该如何使用它?

最佳答案

C++/CLI 确实有 lock类(class)。您需要做的就是使用基于堆栈的语义声明一个锁变量,并且当调用其析构函数时它将安全地退出监视器,例如:

#include <msclr\lock.h>
{
msclr::lock l(m_lock);

// Do work

} //destructor of lock is called (exits monitor).

m_lock 声明取决于您是否同步对实例或静态成员的访问。

要保护实例成员,请使用:

Object^ m_lock = gcnew Object(); // Each class instance has a private lock - 
// protects instance members.

要保护静态成员,请使用:

static Object^ m_lock = gcnew Object(); // Type has a private lock -
// protects static members.

关于multithreading - 托管 C++ 中的 C# 的 lock(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1369459/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com