Step1:创建线程,然后挂起。
CFTPCtr:
m_pFTPMainThrd = (CFTPMainThrd*)CWinThread* AFXAPI AfxBeginThread(CRuntimeClass* CFTPMainThrd,THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED,NULL);
Step2:创建事件对象,然后等待事件对象消息。
CFTPCtr:
Handle hOkEvent = NULL;
Handle hFailEvent = NULL;
HANDLE CreateEvent(LPSECURITY_ATTRIBUTES lpEventAttributes,BOOL bManualReset,BOOL bInitialState,LPCTSTR lpName);
m_pFTPMainThrd_ResumeThread();
Handle hHandleArray[2] = {hOkEvent, hFailEvent};
DWORD dwWaitResult = ::WaitForMultipleObjects(DWORD nCount,const HANDLE* lpHandles,BOOL bWaitAll,DWORD dwMilliseconds);
Step3:打开事件对象,设置事件对象,则第二步中的WaitForMultipleObjects响应。
CFTPMainThrd:
//InitInstance就是“初始化实例”的意思,它是在实例创建时首先被调用的。
InitInstance()
{
BOOL AfxSocketInit( WSADATA* lpwsaData = NULL );
Listen();
Handle hOkEvent = NULL;
hOkEvent = OpenEvent( DWORD dwDesiredAccess, BOOL bInheritHandle, LPCTSTR lpName);
SetEvent(hOkEvent);
CloseHandle(hOkEvent);
}