几个线程同时调用一个控制函数(传递不同参数)
我写的一个程序,需要启动几个线程,这几个线程做同样的工作、完成同样的功能,只是参数不一样。所以我想同时调用一个控制函数(传递不同参数),不知道这样有没有问题?
我跟踪了一下,发现有问题:除了第一次启动的线程完全正常外,后来的线程可以启动,但根本就没执行,不知道是什么原因?是不是不该调用同一个控制函数?如果是这样,那该如何完成类似的任务呢?大家有没有遇到这样的问题?你们是如何解决的?
代码如下:
...
UINT MyFunc(LPVOID lParam)
{
...
}
启动线程的地方
...
CProcess *pProcess = ...;
CWinThread *pThread = AfxBeginThread(MyFunc, (LPVOID)pProcess, 0, 0, CREATE_SUSPENDED, NULL);
if(pThread!=NULL)
pThread->ResumeThread();
...
CProcess *pProcess2 = ...;
CWinThread *pThread2 = AfxBeginThread(MyFunc, (LPVOID)pProcess2, 0, 0, CREATE_SUSPENDED, NULL);
if(pThread2!=NULL)
pThread2->ResumeThread();
...
CProcess *pProcess3 = ...;
CWinThread *pThread3 = AfxBeginThread(MyFunc, (LPVOID)pProcess3, 0, 0, CREATE_SUSPENDED, NULL);
if(pThread3!=NULL)
pThread3->ResumeThread();
请大家指点