一、线程挂起(暂停)
1、SuspendThread用来暂停一个线程的执行,线程暂停时,不会被调度执行
2、ResumeThread用来恢复一个暂停线程的执行(一个暂停的线程无法调用这个方法来恢复自己,
3、因为暂停的线程不可能被执行)暂停县城总是立即被暂停,而不管被暂停的线程执行到了哪个指令
线程内核对象内部,存储了一个暂停计数的值,每调用一次,SuspendThread方法该值就加1,
调用ResumeThread一次该值就减1当该值为0时,就表示该线程可以被调用执行了,但不会被立即执行,
所以多次被Suspend的线程不能期望调用一次Resume方法就恢复
4、这两个方法入口参数为线程的句柄
5、线程函数内部可以通过Sleep或者SleepEx方法自行暂停一定时间后自动恢复执行,但是这个暂停时间
对于系统调度程序来说只是一个参考值,调度程序不能保证精确的暂停指定的时长,通常暂停时长会长于
指定的暂停时长
二、线程的暂停式创建(下面例子1)
1、在调用CreateThread创建线程时,可以明确指定以暂停方式创建线程(CREATE_SUSPENDED)
2、如果没有暂停方式执行的话,创建线程的行为将比较难以控制,有可能调度程序在CreateThread返回
前就开始执行新线程,也有可能在返回之后才去调度执行新线程,很难预期
3、所以,推荐创建线程都以暂停标志创建知道CreateThread返回,并做了一些必要的处理后&#