gpt4 book ai didi

c++ - CRITICAL SECTION和TCriticalSection有什么关系

转载 作者:行者123 更新时间:2023-11-28 03:59:56 34 4
gpt4 key购买 nike

CRITICAL_SECTION 和 CCriticalSection 之间有什么关系。CCriticalSection 是 CRITICAL_SECTION 的包装器吗?

顺便说一句:

我认为下面的代码没有意义,因为 cs 不是全局的,它每次都在 lock() 之前初始化,所以它不能锁定 XXX,是吗?

int func
{
CCriticalSection cs;
cs.Lock();
XXX
cs.Unlock();
}

非常感谢!

最佳答案

是 MFC CCriticalSection section 只是 Win32 CRITICAL_SECTION 的包装器。

这几乎适用于所有 MFC,它是围绕标准 Win32 功能的大量包装类。

至于您的代码示例,是的,在该上下文中使用关键部分是没有意义的。临界区的作用类似于命名的互斥体,它确保一次只能由单个线程访问资源。正确使用临界区是作为一个可被多个线程访问的对象,然后在使用一次不能被多个线程使用的资源时:

MyGlobalCS.Lock();

// Do important work on resource

MyGlobalCS.Unlock();

另请注意,如果很难将关键部分放入共享位置,您可以使用命名为 mutex 的文件。相反。

关于c++ - CRITICAL SECTION和TCriticalSection有什么关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1338526/

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