共用方式為


AfxBeginThread

呼叫這個函式會建立新的執行緒。

CWinThread* AfxBeginThread(
   AFX_THREADPROC pfnThreadProc,
   LPVOID pParam,
   int nPriority = THREAD_PRIORITY_NORMAL,
   UINT nStackSize = 0,
   DWORD dwCreateFlags = 0,
   LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL 
);
CWinThread* AfxBeginThread(
   CRuntimeClass* pThreadClass,
   int nPriority = THREAD_PRIORITY_NORMAL,
   UINT nStackSize = 0,
   DWORD dwCreateFlags = 0,
   LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL 
);

參數

  • pfnThreadProc
    對控制項功能的點背景工作執行緒的。 無法為 NULL。 必須宣告這個函式:

    UINT __cdecl MyControllingFunction( LPVOID pParam );

  • pThreadClass
    衍生自 CWinThread物件的 RUNTIME_CLASS

  • pParam
    將傳遞的參數為控制項的功能 (如函式宣告的參數所顯示 pfnThreadProc。

  • nPriority
    想要的執行緒優先權。 如需可用之優先權的完整清單和說明,請參閱 Windows SDK的 SetThreadPriority

  • nStackSize
    在堆疊上的指定位元組大小為新的執行緒。 如果 0,對相同大小堆疊的堆疊大小預設和建立的執行緒。

  • dwCreateFlags
    指定控制項執行緒上建立的其他旗標。 這個旗標可包含兩個值之一:

    • CREATE_SUSPENDED 入門暫停次數的執行緒 (如果有的話)。 請使用 CREATE_SUSPENDED ,如果您要初始化 CWinThread 物件的任何成員資料,例如 m_bAutoDelete 或您的衍生類別的任何成員,在這種情況下,執行緒開始執行之前。 一旦您的初始化已經完成,請使用 CWinThread::ResumeThread 開始執行緒執行。 執行緒不會執行,直到呼叫 CWinThread::ResumeThread

    • 0 開始建立之後的執行緒。

  • lpSecurityAttrs
    為執行緒安全指定屬性之 SECURITY_ATTRIBUTES 結構的點。 如果安全屬性和建立的執行緒相同將使用 NULL。 如需結構的詳細資訊,請參閱 Windows SDK。

傳回值

out 新建立之執行緒物件的指標或 NULL ,如果失敗。

備註

AfxBeginThread 第一次建立背景工作執行緒。 第二個表單建立可以做為做為使用者介面執行緒或背景工作執行緒的執行緒。

AfxBeginThread 建立新的 CWinThread 物件,呼叫它的 CreateThread 函式開始執行執行緒,並將指標傳回執行緒。 整個程序都會進行檢查,確保建立的任何部分萬一失敗時,所有物件都會適當地解除配置。 若要結束執行緒,請呼叫 AfxEndThread 從執行緒內或從背景工作執行緒的控制函式傳回。

必須由應用程式啟用多執行緒;否則,這個函式會失敗。 如需啟用多執行緒的詳細資訊,請參閱 /MD、/MT、/LD (使用執行階段程式庫)Visual C++ 編譯器選項底下

如需 AfxBeginThread,請參閱文件 多執行緒:建立背景工作執行緒多執行緒:建立使用者介面執行緒

範例

請參閱 CSocket::Attach範例。

需求

Header: afxwin.h

請參閱

參考

AfxGetThread

概念

MFC 巨集和全域變數