- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
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/
我有一个用 Delphi 10 Seattle Win32 编写的服务应用程序,它具有在线程中定期更新的内存数据。 由于数据是一个复杂的结构并且以 block 的形式接收,更新代码写入一个临时列表,当
我正在编写一个多线程聊天服务器应用程序。因此临界区是非常必要的。我刚刚为线程 TreeView 制作了一个包装类。它在客户端中完美运行,但服务器会引发 AV。 有两种形式,FormServer(除了
我想要两个过程可以互相调用,或者从正在运行的任何线程调用,但一次只能运行一个。我怎样才能做到这一点?这能正常工作吗? var cs: TCriticalSection; procedure a;
在Windows平台上,TCriticalSection是通过调用Windows API EnterCriticalSection/LeaveCriticalSection来实现的。 Microsof
我正在更新 Delphi (Delphi 2009) 代码,它专门使用 TCriticalSection.Acquire/Release 对,而不是 Enter/Release 或 Leave 对。我
我是一名优秀的程序员,十分优秀!