多线程的问题 望高手指教
刚学的MFC 用到多线程,
struct InPutVido
{
const char *FileName;
int WndID;
};
线程函数
UINT ThreadFunc1(LPVOID lpa)
{
const char* inFileName=*(const char**)lpa;
TRACE(_T("%s\n"),inFileName);
AfxMessageBox(inFileName);
return 0;
}
void CVidoDetectDlg::CreatAllThread(vector<InPutVido> AllVido)
{
int OpenedVidoNum=AllVido.size();
CWinThread** _pThread1;
_pThread1=new CWinThread*[OpenedVidoNum];
for (int i=0;i<OpenedVidoNum;i++)
{
const char* filenamge=AllVido[i].FileName;
_pThread1[i] = AfxBeginThread(ThreadFunc1,&filenamge,THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED,NULL);
_pThread1[i]->ResumeThread();
}
}
AllVido 用户输入的文件信息,文件名
功能:根据用户的输入AllVido的大小OpenedVidoNum,创建OpenedVidoNum个线程,每个线程里面应该得到一个const char*字符串(文件名)。
问题:当输入一个时候没问题;输入两个时候,TRACE 显示两个线程inFileName的值都相同(只是其中一个);输入三个的时候,有两相同;输入四个的时候,有三个相同....
刚接触这一块,请高手指教