WEB开发网
开发学院软件开发VC MFC教程(8)-- MFC的进程和线程 阅读

MFC教程(8)-- MFC的进程和线程

 2010-03-25 20:35:10 来源:WEB开发网   
核心提示:线程的创建使用CreateThread函数创建线程,CreateThread的原型如下:HANDLE CreateThread(LPSECURITY_ATTRIBUTES lpThreadAttributes,DWORD dwStackSize,LPTHREAD_START_ROUTINE lpStartAddress

线程的创建

使用CreateThread函数创建线程,CreateThread的原型如下:

HANDLE CreateThread(

LPSECURITY_ATTRIBUTES lpThreadAttributes,

DWORD dwStackSize,

LPTHREAD_START_ROUTINE lpStartAddress,

LPVOID lpParameter,

DWORD dwCreationFlags, // creation flags

LPDWORD lpThreadId

);

其中:

lpThreadAttributes表示创建线程的安全属性,NT下有用。

dwStackSize指定线程栈的尺寸,如果为0则与进程主线程栈相同。

lpStartAddress指定线程开始运行的地址。

lpParameter表示传递给线程的32位的参数。---www.bianceng.cn

dwCreateFlages表示是否创建后挂起线程(取值CREATE_SUSPEND),挂起后调用ResumeThread继续执行。

lpThreadId用来存放返回的线程ID。

线程的优先级别

进程的每个优先级类包含了五个线程的优先级水平。在进程的优先级类确定之后,可以改变线程的优先级水平。用SetPriorityClass设置进程优先级类,用SetThreadPriority设置线程优先级水平。

Normal级的线程可以被除了Idle级以外的任意线程抢占。

线程的终止

以下情况终止一个线程:

调用了ExitThread函数;

线程函数返回:主线程返回导致ExitProcess被调用,其他线程返回导致ExitThread被调用;

调用ExitProcess导致进程的所有线程终止;

调用TerminateThread终止一个线程;

调用TerminateProcess终止一个进程时,导致其所有线程的终止。

当用TerminateProcess或者TerminateThread终止进程或线程时,DLL的入口函数DllMain不会被执行(如果有DLL的话)。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:MFC 教程 MFC

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接