Beginthread
The beginthread function creates a new thread of execution within the current process. It is part of the Microsoft Windows runtime library and is declared in the process.h header file.
Prototype
unsigned long _beginthread(void(* Func)(void*), unsigned Stack_size, void *Arg);
Func
Thread execution starts at the beginning of the function func. To terminate the thread correctly, func must call endthread or end with "return 0", freeing memory allocated by the run time library to support the thread.
Stack_size
The operating system allocates a stack for the thread containing the number of bytes specified by stack_size. If the value of stack_size is zero, the operating system creates a stack the same size as that of the main thread.[1]
Arg
The operating system passes Arg to Func when execution begins. Arg can be any 32-bit value cast to void*.
Return value
Returns the operating system handle of the newly created thread. If unsuccessful, the function returns -1 and sets errno.
Compiler switches
To compile a program using multiple threads with the Microsoft C/C++ Compiler, you must specify the /MT switch (or /MTd, for debug programs).
References
