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