如何制作同步对象的字典?
How to make a dictionary of synchronization objects?
我需要的是类似 std::map<std::string, CCriticalSection>
但 CCriticalSection 是不可复制的。我想我可以使用 CRICITAL_SECTION
而不是 CCriticalSection
,但它也是 not possible to copy or move objects of this type。因为这是一个非常古老的项目,所以我只能使用 MFC 和 VC6。我想以下列方式访问同步对象(以下代码不起作用,只是我想如何使用字典的想法):
// global variable
std::map<std::string, CCriticalSection> csec;
unsigned int somefunc(std::string ip)
{
CSingleLock lock(&csec[ip], TRUE);
// do something
}
所以我的问题是,如何使用 MFC 和 VC6 制作同步对象字典?
感谢您的回答!
使用指向临界区的指针映射:
std::map<std::string, CCriticalSection *> csec;
// add
csec["key1"] = new CCriticalSection();
// access
CSingleLock lock(csec[ip], TRUE);
// don't forget to delete after use
for (std::map<std::string, CCriticalSection *>::iterator i = csec.begin();
i != csec.end(); ++i)
delete i->second;
我需要的是类似 std::map<std::string, CCriticalSection>
但 CCriticalSection 是不可复制的。我想我可以使用 CRICITAL_SECTION
而不是 CCriticalSection
,但它也是 not possible to copy or move objects of this type。因为这是一个非常古老的项目,所以我只能使用 MFC 和 VC6。我想以下列方式访问同步对象(以下代码不起作用,只是我想如何使用字典的想法):
// global variable
std::map<std::string, CCriticalSection> csec;
unsigned int somefunc(std::string ip)
{
CSingleLock lock(&csec[ip], TRUE);
// do something
}
所以我的问题是,如何使用 MFC 和 VC6 制作同步对象字典?
感谢您的回答!
使用指向临界区的指针映射:
std::map<std::string, CCriticalSection *> csec;
// add
csec["key1"] = new CCriticalSection();
// access
CSingleLock lock(csec[ip], TRUE);
// don't forget to delete after use
for (std::map<std::string, CCriticalSection *>::iterator i = csec.begin();
i != csec.end(); ++i)
delete i->second;