Windows編程中遇到的問題(王豔平Windows程序設計)

</pre>}<img src="https://img-blog.csdn.net/20130922201741421?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvWFIxMDY0/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><pre name="code" class="cpp">


兩次運行的結果不同,與書上說的有矛盾。書上說只要有優先級高的就不會運行優先級低的,但是運行後結果卻不一樣,求高手指教。


#include "stdafx.h"
#include <windows.h>
 #include <stdio.h>
DWORD WINAPI ThreadIdle(LPVOID lpParam)
{
int i = 0;
while (i++<10)
{
printf("Idle Thread is running\n");
}
return 0;
}
DWORD WINAPI ThreadNormal(LPVOID lpParam)
{
int i = 0;
while(i++<10)
printf("Normal Thread is running\n");
return 0;
}
int main(int argc, char* argv[])
{
DWORD dwThreadID;
HANDLE h[2];
h[0] = ::CreateThread(NULL,0,ThreadIdle,NULL,CREATE_SUSPENDED,&dwThreadID);
::SetThreadPriority(h[0],THREAD_PRIORITY_IDLE);
::ResumeThread(h[0]);
h[1]=::CreateThread(NULL,0,ThreadNormal,NULL,0,&dwThreadID);
::WaitForMultipleObjects(2,h,TRUE,INFINITE);
::CloseHandle(h[0]);
::CloseHandle(h[1]);
return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章