//m_pSection是类的成员 CCriticalSection m_pSection;void CMyClass::Func()
{
CSingleLock pLock( &m_pSection, TRUE );
...操作资源
}
我看到不少程序就是这样,可以么?我看MSDN上说需要显式调用lock
也就是
void CMyClass::Func()
{
CSingleLock pLock( &m_pSection, TRUE );
pLock.Lock();
...操作资源
pLock.Unlock();}第一种正常么?
{
CSingleLock pLock( &m_pSection, TRUE );
...操作资源
}
我看到不少程序就是这样,可以么?我看MSDN上说需要显式调用lock
也就是
void CMyClass::Func()
{
CSingleLock pLock( &m_pSection, TRUE );
pLock.Lock();
...操作资源
pLock.Unlock();}第一种正常么?
解决方案 »
- 为什么在线程函数里调用AfxGetMainWnd()返回的窗口指针不为NULL ?
- 大家用VC做什么样的程序?
- double 轉CString?
- 关于获得硬盘序列号和网卡MAC的问题
- CDialog派生出来的类不能映射ON_MESSAGE消息????
- 如何取得最上层窗体的句柄?
- 找一个(包括上一个、下一个、第一个、最后一个)的控件
- 请教函数指针
- 求助skinmagic builder 界面工具修改client 客户区背景,在测试时可以显示,但在MFC程序就不会显示了
- assertion failure???
- vc向导自动生成的mfc多文档程序,各个文件的预处理顺序有谁知道,
- bcg 高手进来看看,我实在没办法了!
//访问共享资源
LeaveCriticalSection(&g_lock);DeleteCriticalSection(&g_lock);
+
如果是用VC的话,直接用封装好的CCriticalSection类
CCriticalSection g_CriticalSection;
....
g_CriticalSection.Lock();
//访问共享资源
g_CriticalSection.Unlock();如果是CB的话:
TCriticalSection * pCriticalSection = new TCriticalSection;
pCriticalSection->Enter();
//访问共享资源
pCriticalSection->Leave();
delete pCriticalSection;
leave写到析构函数。
就不要成对出现了。