【发布时间】:2013-04-25 10:04:06
【问题描述】:
我最近开始使用 C++ 而不是 Delphi。 有些事情似乎完全不同。 例如,我不知道如何初始化 Semaphores 和 CriticalSections 等变量。 到目前为止,我只知道两种可能的方法: 1. 在构造函数中初始化临界区是愚蠢的,因为每个实例都将使用自己的临界区而不同步任何东西,对吧? 2. 使用全局变量并在创建表单时对其进行初始化似乎也不是完美的解决方案。 谁能告诉我如何做到这一点?
我需要的关键部分只是一个简短的解释: 我想从不同的线程中填充一个 ListBox。 信号量: 不同的线程正在移动鼠标,这不应该被打断。
谢谢!
【问题讨论】:
-
标准 C++ 仅在
<mutex>和<condition_variable>中分别使用互斥锁和条件变量作为同步机制。你可以从那里build your own semaphore。 -
所以问题不是如何初始化你的对象,而是在哪里,对吧?如果是这样,出于好奇,您在 Delphi 中是在哪里做的?
-
Delphi 提供了关键字初始化和终结,这使得 imo 更容易
-
对了,我忘了。答案即将到来……;)
标签: c++ initialization semaphore critical-section