Sdílet prostřednictvím


AfxBeginThread

Volání této funkce můžete vytvořit nové vlákno.

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 
);

Parametry

  • pfnThreadProc
    Odkazuje na řídící funkce pro pracovní podproces.Nemůže být NULL.Tato funkce musí být deklarovány takto:

    UINT __cdecl MyControllingFunction( LPVOID pParam );

  • pThreadClass
    RUNTIME_CLASS, která objektu odvozené z CWinThread.

  • pParam
    Parametr, který má být předán řídící funkce uvedeného v parametru k deklaraci funkce v pfnThreadProc.

  • nPriority
    Požadovaná priorita podprocesu.Úplný seznam a popis k dispozici priority naleznete v tématu SetThreadPriority v Windows SDK.

  • nStackSize
    Určuje velikost v bajtech zásobníku pro nové vlákno.Pokud je 0, výchozí velikost zásobníku stejná velikost zásobníku jako u vytvářeného vlákna.

  • dwCreateFlags
    Určuje další příznak, který řídí vytváření podprocesu.Tento příznak může obsahovat jednu ze dvou hodnot:

    • CREATE_SUSPENDED spustit podproces s počtem pozastavení jedné.Použití CREATE_SUSPENDED Pokud chcete inicializovat všechna data člen z CWinThread objektu, jako například m_bAutoDelete nebo všechny členy odvozené třídy, před spuštění podprocesu.Po dokončení inicializace aplikace pomocí CWinThread::ResumeThread Chcete-li spustit podproces spuštěn.Spustit vlákno až do CWinThread::ResumeThread je volána.

    • 0 Spustit podproces ihned po vytvoření.

  • lpSecurityAttrs
    Odkazuje SECURITY_ATTRIBUTES strukturu, která určuje atributy zabezpečení podprocesu.Pokud NULL, atributy stejného zabezpečení, bude použit vytvářeného vlákna.Další informace o této struktury naleznete v tématu Windows SDK.

Vrácená hodnota

Ukazatel na objekt nově vytvořeného vlákna nebo NULL v případě, že dojde k selhání.

Poznámky

První tvar AfxBeginThread vytvoří pracovní podproces.Druhý formulář vytvoří podproces, který může sloužit jako vlákno uživatelského rozhraní nebo jako pracovní podproces.

AfxBeginThreadVytvoří nový CWinThread objekt, volání jeho CreateThread funkce spustí provádění vlákna a vrací ukazatel na vlákno.Kontroly jsou prováděny v celém procesu, aby bylo zajištěno, že všechny objekty jsou správně zrušeny, takže by neměla selhat žádná část tvorby.Chcete-li ukončit vlákno, zavolejte AfxEndThread z vlákna nebo návratu z řídící funkce pracovního podprocesu.

Multithreading, musí být povolena v žádosti; jinak tato funkce se nezdaří.Další informace o povolení multithreadingu, naleznete v / /LD MD, /MT, (použití knihovna Run-Time) pod Možnosti kompilátoru Visual C++.

Další informace o AfxBeginThread, naleznete v článcích Multithreading: vytváření pracovních podprocesů a Multithreading: vytváření vláken uživatelského rozhraní.

Příklad

Viz příklad pro CSocket::Attach.

Požadavky

Záhlaví: afxwin.h

Viz také

Referenční dokumentace

AfxGetThread

Koncepty

MFC makra a Globals