createthread函数用法
CreateThread函数用于在Windows系统中创建一个新线程,并返回新线程的句柄。它主要是封装了内核函数NtCreateThread(),调用CreateThread时会创建一个新线程,并将新线程中所有上下文相关的操作都存储在一个栈中。
CreateThread函数的原型是:HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes,SIZE_T dwStackSize,LPTHREAD_START_ROUTINE lpStartAddress,LPVOID lpParameter,DWORD dwCreationFlags,LPDWORD lpThreadId);参数:
waitforsingleobject函数1、lpThreadAttributes:Security 与线程属性相关的参数,可以设置线程的安全性。
2、dwStackSize:线程栈大小,如果为0,就使用操作系统默认的大小,一般都不设置。
3、lpStartAddress:线程的主函数的地址,即新建线程的入口函数,此函数的原型为DWORD WINAPI ThreadFunc(LPVOID lparam)。
4、lpParameter:指向线程函数的参数的指针,可以是任意类型的参数指针。
5、dwCreationFlags:线程的表现形式,可以设置为CREATE_SUSPEND或者CREATE_BREAKAWAY_FROM_JOB或者建立多个线程时的设置。
6、lpThreadId:用来接收新建线程的id。
通过CreateThread函数可以很方便地创建新线程,但是要注意新建线程的函数原型必须是DWORD WINAPI ThreadFunc(LPVOID lparam) ,其中lparam指向函数的参数类型可以为任意类型,且线程函数必须返回一个DWORD类型的数据,并且在线程结束之后也必须返回此类型数据。
此外,调用CreateThread函数后,还应当调用WaitForSingleObject函数来等待线程的结束,如果不等待,新建的线程可能会立即被操作系统抢占,从而导致程序出现错误。
总之,CreateThread函数是一种非常方便的创建线程的方式,但是使用者应当注意函数的原型,并且在新建的线程结束之前,必须调用WaitForSingleObject函数来等待线程的结束。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论