主题:[讨论]关于多线程的问题
我做一了个多线程的程序,可老是有一个错误,不知道怎么解决,只能是在线请教各位大虾,先谢了.
问题:
建一个新的类,类中有一个方法operate(),方法里创建一个多线程.
这个是一个头文件,如下:
#include"iostream.h"
#include<windows.h>
#define MAX 10000000
int INDEX=0;
class BusyTone
{
public:
int m_out;
public:
DWORD WINAPI Fun(LPVOID lpParameter)
{
while(INDEX++<MAX)
Beep(0x400,1000);
return 0;
}
void operate()
{
HANDLE hThread;
hThread=CreateThread(NULL,0,Fun,NULL,0,NULL);
CloseHandle(hThread);
cout<<"please input a number(2,3 or 4)"<<endl;
while(INDEX++<MAX)
{
if(cin>>m_out)
break;
}
}
};
主函数main():
#include"BusyTone.h"
#include <Windows.h>
#include"iostream.h"
void main()
{
BusyTone b;
b.operate();
}
报的错误如下:
d:\my vc++\originating call control\busytone.h(23) :
error C2664: 'CreateThread' : cannot convert parameter 3 from 'unsigned long (void *)' to 'unsigned long (__stdcall *)(void *)'
问题:
建一个新的类,类中有一个方法operate(),方法里创建一个多线程.
这个是一个头文件,如下:
#include"iostream.h"
#include<windows.h>
#define MAX 10000000
int INDEX=0;
class BusyTone
{
public:
int m_out;
public:
DWORD WINAPI Fun(LPVOID lpParameter)
{
while(INDEX++<MAX)
Beep(0x400,1000);
return 0;
}
void operate()
{
HANDLE hThread;
hThread=CreateThread(NULL,0,Fun,NULL,0,NULL);
CloseHandle(hThread);
cout<<"please input a number(2,3 or 4)"<<endl;
while(INDEX++<MAX)
{
if(cin>>m_out)
break;
}
}
};
主函数main():
#include"BusyTone.h"
#include <Windows.h>
#include"iostream.h"
void main()
{
BusyTone b;
b.operate();
}
报的错误如下:
d:\my vc++\originating call control\busytone.h(23) :
error C2664: 'CreateThread' : cannot convert parameter 3 from 'unsigned long (void *)' to 'unsigned long (__stdcall *)(void *)'