多线程基础
#include "windows.h"
#include <iostream>
#include <process.h>
using namespace std;
class ExampleTask
{
public:
friend void taskmain(LPVOID param);
void StartTask();
};
void taskmain(LPVOID param)
{
cout<<2<<endl;
//ExampleTask *pTaskMain = (ExampleTask*)param;
cout<<3<<endl;
}
void ExampleTask::StartTask()
{
cout<<1<<endl;
_beginthread(taskmain,0,this);
}
int main(int argc,char *argv[])
{
ExampleTask realTimeTask;
realTimeTask.StartTask();
return 0;
}
为什么在调试的过程中 就不会输出2 , 而在运行的时候,就会出现2(为什么3不会出现),然后把
void taskmain(LPVOID param)这个函数中的第2个句子(也就是cout<<"1"和cput<<"3"之间那个句子,运行就不会出现2,这是为什么,例子来自win32多线程,表示看不懂。。
[解决办法]
//ExampleTask *pTaskMain = (ExampleTask*)param;
[解决办法]
线程还没跑完,程序就退出了
_beginthread之后WaitForSingleObject一下就好了
[解决办法]