关于设置线程优先级问题!
#include<iostream> #include<windows.h> using namespace std;DWORD WINAPI Threadpro(LPVOID lp);DWORD dwThreadId[2]; void main() { HANDLE hthread1; HANDLE hthread2; //创建两个线程,每个线程给予的标志都是挂起的。 hthread1=::CreateThread(NULL,NULL,Threadpro,NULL,CREATE_SUSPENDED ,&dwThreadId[0]); cout<<"创建的第一个线程ID:"<<dwThreadId[0]<<endl; hthread2=::CreateThread(NULL,NULL,Threadpro,NULL,CREATE_SUSPENDED ,&dwThreadId[1]); cout<<"创建的第二个线程ID:"<<dwThreadId[1]<<endl; //修改两个线程的优先级。第一线程是高于正常,第二个线程是最低 ::SetThreadPriority(hthread1,THREAD_PRIORITY_ABOVE_NORMAL); ::SetThreadPriority(hthread2,THREAD_PRIORITY_LOWEST)); //同时唤起两个线程 ::ResumeThread(hthread1); //::WaitForSingleObject(hthread1,INFINITE);这个行我注释掉了。 ::ResumeThread(hthread2); //因为设置时第二个线程低于第一个线程,所以等第二个线程结束关闭线程句柄。 ::WaitForSingleObject(hthread2,INFINITE); ::CloseHandle(hthread2); ::CloseHandle(hthread1);} DWORD WINAPI Threadpro(LPVOID lp){ int i=0; while(i<20) { cout<<"这个线程正在运行:输出线程ID:"<<::GetCurrentThreadId()<<"程序输出数据:"<<i<<endl; i++; } return 0;}