#include <windows.h>
#include <iostream>
using
std::cout;
using
std::cin;
using
std::cerr;
using
std::endl;
struct
Point
{
float
x, y, z;
};
DWORD
WINAPI threadStartPoint(
LPVOID
data)
{
Sleep(1000);
Point* p = (Point*)data;
cout << p->x <<
'\t'
<< p->y <<
'\t'
<< p->z << endl;
cout <<
"Thread job done"
<< endl;;
return
0;
}
int
main(
int
argc,
char
** argv)
{
DWORD
threadID;
Point p;
p.x = 2; p.y = 3; p.z = 4;
HANDLE
handle = CreateThread(0, 0,
threadStartPoint,
(
LPVOID
)&p,
0,
&threadID);
if
(!handle)
cout <<
"Start failed!"
<< endl;
else
cout <<
"started on threadid= "
<< threadID << endl;
WaitForSingleObject(handle, 2000);
cout <<
"main thread Exiting ..."
<< endl;
system
(
"pause"
);
return
0;
}