国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

c++ 多線程編程

2019-11-11 02:59:56
字體:
來源:轉載
供稿:網友

創建線程的API函數

復制代碼一、Windows系統為我們提供的API
HANDLE CreateThread(    LPSECURITY_ATTRIBUTES lpThreadAttributes,//SD:線程安全相關的屬性,常置為NULL    SIZE_T dwStackSize,//initialstacksize:新線程的初始化棧的大小,可設置為0    LPTHREAD_START_ROUTINE lpStartAddress,//threadfunction:被線程執行的回調函數,也稱為線程函數    LPVOID lpParameter,//threadargument:傳入線程函數的參數,不需傳遞參數時為NULL    DWord dwCreationFlags,//creationoption:控制線程創建的標志    LPDWORD lpThreadId//threadidentifier:傳出參數,用于獲得線程ID,如果為NULL則不返回線程ID    )/*lpThreadAttributes:指向SECURITY_ATTRIBUTES結構的指針,決定返回的句柄是否可被子進程繼承,如果為NULL則表示返回的句柄不能被子進程繼承。dwStackSize:設置初始棧的大小,以字節為單位,如果為0,那么默認將使用與調用該函數的線程相同的棧空間大小。任何情況下,Windows根據需要動態延長堆棧的大小。lpStartAddress:指向線程函數的指針,函數名稱沒有限制,但是必須以下列形式聲明:DWORD WINAPI 函數名 (LPVOID lpParam) ,格式不正確將無法調用成功。lpParameter:向線程函數傳遞的參數,是一個指向結構的指針,不需傳遞參數時,為NULL。dwCreationFlags:控制線程創建的標志,可取值如下:(1)CREATE_SUSPENDED(0x00000004):創建一個掛起的線程(就緒狀態),直到線程被喚醒時才調用(2)0:表示創建后立即激活。(3)STACK_SIZE_PARAM_IS_A_RESERVATION(0x00010000):dwStackSize參數指定初始的保留堆棧的大小,如果STACK_SIZE_PARAM_IS_A_RESERVATION標志未指定,dwStackSize將會設為系統預留的值lpThreadId:保存新線程的id返回值:函數成功,返回線程句柄,否則返回NULL。如果線程創建失敗,可通過GetLastError函數獲得錯誤信息。*/BOOL WINAPI CloseHandle(HANDLE hObject);        //關閉一個被打開的對象句柄/*可用這個函數關閉創建的線程句柄,如果函數執行成功則返回true(非0),如果失敗則返回false(0),如果執行失敗可調用GetLastError.函數獲得錯誤信息。*/
二、MFC創建線程函數

 用戶界面線程和工作者線程都是由AfxBeginThread創建的。MFC提供了兩個重載版的AfxBeginThread,一個用于工作者線程,另一個用于用戶界面線程,分別有如下的原型和過程:

工作者線程的AfxBeginThread的原型如下:CWinThread* AFXAPI AfxBeginThread(AFX_THREADPROC pfnThreadProc, LPVOID pParam,int nPriority, UINT nStackSize, DWORD dwCreateFlags,LPSECURITY_ATTRIBUTES lpSecurityAttrs)其中:參數1  線程的入口函數,聲明一定要如下: UINT MyThreadFunction( LPVOID pParam );參數2 傳遞入線程的參數,注意它的類型為:LPVOID,所以我們可以傳遞一個結構體入線程.參數3、4、5分別指定線程的優先級、堆棧大小、創建標識、安全屬性,含義同用戶界面線程。用戶界面線程的AfxBeginThread的原型如下:CWinThread* AFXAPI AfxBeginThread(CRuntimeClass* pThreadClass,int nPriority, UINT nStackSize, DWORD dwCreateFlags,LPSECURITY_ATTRIBUTES lpSecurityAttrs)其中:參數1是從CWinThread派生的RUNTIME_CLASS類;參數2指定線程優先級,如果為0,則與創建該線程的線程相同;參數3指定線程的堆棧大小,如果為0,則與創建該線程的線程相同;參數4是一個創建標識,如果是CREATE_SUSPENDED,則在懸掛狀態創建線程,在線程創建后線程掛起,否則線程在創建后開始線程的執行。參數5表示線程的安全屬性,NT下有用。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 横山县| 荣昌县| 五指山市| 盐津县| 赣州市| 延寿县| 开阳县| 香河县| 巩义市| 小金县| 比如县| 共和县| 美姑县| 新沂市| 内丘县| 嘉义县| 南靖县| 绍兴县| 中江县| 杂多县| 东宁县| 东安县| 长垣县| 澄迈县| 陕西省| 温泉县| 天门市| 彭阳县| 岳普湖县| 达拉特旗| 静乐县| 临猗县| 玉门市| 禹州市| 宁城县| 绥德县| 九寨沟县| 珠海市| 湘阴县| 凤庆县| 西林县|