1. 程式人生 > >執行緒&程序(獲取偽控制代碼 & 轉為真實控制代碼)

執行緒&程序(獲取偽控制代碼 & 轉為真實控制代碼)

一.
1. HANDLE GetCurrentThread();  //獲得當前執行緒偽控制代碼  
  
HANDLE GetCurrentProcess(); //獲取當前程序偽控制代碼

2.                                                  

3. 偽控制代碼不是真正的控制代碼,因此不需要CloseHandle來關閉

3. 偽控制代碼不會增加執行緒核心物件的應用計數

二. 偽控制代碼轉真實控制代碼

HANDLE hProcess=NULL;  
DuplicateHandle(GetCurrentProcess(),  
    GetCurrentProcess(),  
    GetCurrentProcess(),  
    &hProcess,  
    0,  
    FALSE,  
    DUPLICATE_SAME_ACCESS);//偽程序控制代碼轉為真實程序控制代碼  
//...  
//不用的時候必須關閉 不然會有資源洩露  
CloseHandle(hProcess);  
HANDLE hThread=NULL;  
DuplicateHandle(GetCurrentProcess(),  
    GetCurrentThread(),  
    GetCurrentProcess(),  
    &hThread,  
    0,  
    FALSE,  
    DUPLICATE_SAME_ACCESS);//偽執行緒控制代碼轉換為真實執行緒控制代碼  
//..    
//不用時也必須關閉  
CloseHandle(hThread);