异常!(线程)

错误!(线程)
void   CMFC_TaskingDoc::SuspendSpinner(int   nIndex,   BOOL   bSuspend)
{
if   (!bSuspend)
{
if   (m_pSpinThread[nIndex])
{
HANDLE   hThread=m_pSpinThread[nIndex]-> m_hThread;
::WaitForSingleObject(hThread,INFINITE);
}
}
else
{
int   iSpnr;
switch(nIndex)
{
case   0:
iSpnr=1;
break;
case   1:
iSpnr=3;
break;
}
m_pSpinThread[nIndex]=AfxBeginThread(ThreadFunc,(LPVOID)&m_cSpin[iSpnr]);////////这局有错误!说是第一个参数传递错误!
}

}


UINT   CMFC_TaskingDoc::ThreadFunc(LPVOID   pParam)
{
CSpinner   *lpSpin=(CSpinner*)pParam;
BOOL   *pbContinue=lpSpin-> GetContinue();
while   (*pbContinue)
{
lpSpin-> Draw();
}
return   0;
}
error   C2665:   'AfxBeginThread '   :   none   of   the   2   overloads   can   convert   parameter   1   from   type   'unsigned   int   (void   *) '


请问为什么啊?还有怎么解决?

顺便问一下!如果把SuspendSpinner   加上static   也会有5个错误为什么啊?

谢谢!

------解决方案--------------------
在每个参数前加上(AFX_THREADPROC)即:
AfxBeginThread((AFX_THREADPROC)ThreadFunc,(LPVOID)&m_cSpin)


------解决方案--------------------
DWORD dwThreadId, dwThrdParam = 1;
hReadThread = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)TheardEvent, &dwThrdParam, 0, &dwThreadId);
------解决方案--------------------
线程函数要是全局函数或静态成员函数,你的UINT CMFC_TaskingDoc::ThreadFunc要声明为static。静态成员函数只能用静态成员,如果SuspendSpinner加了static,m_pSpinThread等也要为static。