CSemaphore使用的问题
想创建一个多线程程序,但线程数最多只允许5个,我使用以下方法,但却发现不行
---全局变量----
CSemaphore smp(1,5);
CSingleLock mlk(&smp);
---调用函数----
while(true)
{
mlk.Lock();
PTHREADPARAM pNewThreadParam = new THREADPARAM;
pNewThreadParam->m_dwKeyLength = dwKeyLength;
pNewThreadParam->m_dwCodeLength = dwCodeLength;
pNewThreadParam->m_dwCols = dwCols;
AfxBeginThread(CrackerThread,pNewThreadParam);
mlk.Unlock();
}
却不行,请问该如何实现?mlk.Unlock();该放在什么地方?
放在线程函数中却又会出错!