相关疑难解决方法(0)

InterlockedIncrement vs EnterCriticalSection/counter ++/LeaveCriticalSection

我有一些多线程代码(请参阅问题Windows API线程池简单示例),我正在使用计数器来识别线程.

我被建议使用InterlockedIncrement在线程的回调函数中递增此计数器.然而,这似乎没有正确锁定变量,因为我遇到了一些并发问题.我通过手动使用临界区替换了InterlockedIncrement:EnterCriticalSection/counter ++/LeaveCriticalSection,现在可以完美地运行.

为什么会这样?这两个选项不应该严格等同吗?请注意,我正在谈论启动一对(大约10个)线程.

c++ windows multithreading thread-safety

5
推荐指数
1
解决办法
5536
查看次数

标签 统计

c++ ×1

multithreading ×1

thread-safety ×1

windows ×1