全局函数
fun2info2 func2info2;
HANDLE hThd[8];
typedef struct 
{  int numb; 
   CString   ip;
   CString filename;
   CString  netcommand;
} fun2info2; hThd[i]=::CreateThread(NULL,0,TransportFile,(LPVOID)&func2info2,0,&dwthread);DWORD WINAPI TransportFile(LPVOID lpparam)
{   //pmutex->Lock();
  // HANDLE   hCounterIn=OpenMutex(MUTEX_ALL_ACCESS,FALSE,"sam   sp   44");   
fun2info2 *   parameter2=(fun2info2 *)lpparam;
// bsendover=false;   // char FilePathName[256];
   // char fileName[256];
    int nBytesLeft;
UINT nBytesRead;
// CMyfile mylogfile;
CTime m_StartTime1=CTime::GetCurrentTime();
CString csStartTime=m_StartTime1.Format("%Y%m%d%H%M%S");
    sprintf(fileName, csStartTime);    int i=parameter2->numb;
    CFile file;
CFileException fe;
     long   a;
// 打开文件
//  WaitForSingleObject(hCounterIn,INFINITE); 
if (!file.Open(parameter2->filename , CFile::modeRead, &fe))
{
// 失败
// ReportSaveLoadException(FilePathName, &fe,
// FALSE, AFX_IDP_FAILED_TO_OPEN_DOC);
return 1;
}
  // ReleaseMutex(hCounterIn); 
    nBytesLeft=file.GetLength();
while ( nBytesLeft > 0  )
  {   
 if(nBytesLeft>=BUFF_LENGTH)
 {   
 nBytesRead= file.Read(buffer,BUFF_LENGTH);
   if ((SendSocket[i] )->m_bConnected)
   (SendSocket[i])->SendString(buffer,nBytesRead);  
      else
   {
           SendSocket[i]->Connect((char *)(LPCSTR)parameter2->ip ,SVR_PORT);  
       if (SendSocket[i]->m_bConnected)
        SendSocket[i]->SendDataBuff((char *)(LPCSTR)parameter2->netcommand,fileName);
       if (SendSocket[i]->m_bConnected)
    SendSocket[i]->SendString(buffer,nBytesRead);
 
   }            
 nBytesLeft -= nBytesRead;
 }
 else
 {
nBytesRead= file.Read(buffer,nBytesLeft);
      
     if (SendSocket[parameter2->numb]->m_bConnected)
   SendSocket[parameter2->numb]->SendString(buffer,nBytesRead);
       else
   {
           SendSocket[parameter2->numb]->Connect((char *)(LPCSTR)parameter2->ip ,SVR_PORT);  
       if (SendSocket[parameter2->numb]->m_bConnected)
        SendSocket[parameter2->numb]->SendDataBuff((char *)(LPCSTR)parameter2->netcommand,fileName);
       if (SendSocket[parameter2->numb]->m_bConnected)
    SendSocket[parameter2->numb]->SendString(buffer,nBytesRead);

       }          
     nBytesLeft -= nBytesRead;
 }
 
  }       
    SendSocket[parameter2->numb]->DisConnect();   
    
// bsendover=true;//pmutex->Unlock();return 1;
}
初学者,请高手指点,为什么创建线程电脑死机。