我必须创建一个应用程序,我必须在其中创建多个线程。所以我想尝试制作一个函数并将其传递给不同的线程。最初,我创建了两个线程并声明了一个要传递给它们的函数。我要做的就是将不同的整数传递给这些线程并将其显示在线程函数中,这是我的代码:
DWORD WINAPI Name(LPVOID lpParam)
{
int *Ptr=(int*)lpParam;
for(int j=0;j<2;j++)
{
cout<<"Thread"<<endl;
cout<<*Ptr<<endl;
}
return 0;
}
int main()
{
int a=10,b=15,c=25;
HANDLE thread1,thread2;
DWORD threadID,threadID2;
thread2= CreateThread(NULL,0,Name,LPVOID(a),0,&threadID2);
thread1= CreateThread(NULL,0,Name,LPVOID(b),0,&threadID);
for(int i=0;i<5;i++)
{
cout<<"Main Thread"<<endl;
}
if(thread1==NULL)
{
cout<<"Couldn't Create Thread:("<<endl;
exit(0);
}
if(thread2==NULL)
{
cout<<"Couldn't Create Thread:("<<endl;
exit(0);
}
return 0;
}
但这段代码运行不正常,即编译正常,开始正常但随后出现调试错误。有人可以让我知道我的错误以及如何纠正它,因为能够将一个函数用于多个线程将对我非常有帮助。