多线程的问题 望高手指教
刚学的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的值都相同(只是其中一个);输入三个的时候,有两相同;输入四个的时候,有三个相同....
刚接触这一块,请高手指教
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的值都相同(只是其中一个);输入三个的时候,有两相同;输入四个的时候,有三个相同....
刚接触这一块,请高手指教
...全文
相关推荐
我的C++心得 大家指教指教!!!
我的一点点心得而已啊!大家多多指教!没有什么不可能的,大家一起加油!
对HANOI问题的详细程序描述!如果你有觉得有问题的地方请指教!希望能帮助你!
对百鸡问题的详细程序描述!如果你有觉得有问题的地方请指教!希望能帮助你,你也知道这门课很难学吧!
QT中sqlite多线程操作4个注意问题
总结了一下Qt中sqlite多线程操作遇到的几个问题,希望能对有需要的朋友一点帮助
个人总结40个Java多线程面试问题和答案
个人总结40个Java多线程面试问题和答案,很全面,让你不再担心多线程的面试问题。
皇后问题的程序描述对百鸡问题的详细程序描述!如果你有觉得有问题的地方请指教!希望能帮助你
对皇后问题的详细程序描述!如果你有觉得有问题的地方请指教!希望能帮助你,你也知道这门课很难学吧!


进程/线程/DLL
