Udostępnij za pośrednictwem


AfxBeginThread

Wywołanie tej funkcji, aby utworzyć nowy wątek.

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
    Wskazuje funkcje kontroli wątku roboczego.Nie może być wartością NULL.Ta funkcja musi być zdeklarowana jak poniżej:

    UINT __cdecl MyControllingFunction( LPVOID pParam );

  • pThreadClass
    RUNTIME_CLASS obiektu wywodzącego się z CWinThread.

  • pParam
    Parametr ma być przekazywany do funkcji kontroli zgodnie z informacjami w parametrze do deklaracji funkcji w pfnThreadProc.

  • nPriority
    Żądany priorytet wątku.Pełna lista i opisy dostępnych priorytetów – zobacz: SetThreadPriority w Windows SDK.

  • nStackSize
    Określa rozmiar w bajtach stosu dla nowego wątku.W przypadku wartości 0, rozmiar stosu jest domyślnie taki sam jak rozmiar stosu wątku tworzącego.

  • dwCreateFlags
    Określa dodatkowy znacznik, który steruje tworzeniem wątku.Ta flaga może zawierać jedną z dwóch wartości:

    • CREATE_SUSPENDED zaczynać wątek wstrzymania liczenia jedengo.Użyj CREATE_SUSPENDED, jeżeli chcesz inicjalizować dane członkowskie obiektu CWinThread takiego jak m_bAutoDelete lub inne elementy członkowskie swojej otrzymanej klasy, przez uruchomieniem wątku.Po zakończeniu inicjalizacji, skorzystaj z CWinThread::ResumeThread, aby uruchomić wątek systemu.Wątek nie zostanie wykonany dopóki nie zostanie wywołane CWinThread::ResumeThread.

    • 0 Uruchomić wątku od razu po utworzeniu.

  • lpSecurityAttrs
    Wskazuje strukturę SECURITY_ATTRIBUTES, która określa atrybuty zabezpieczeń dla wątku.Jeśli NULL, zostaną użyte takie same atrybuty bezpieczeństwa, jak w wątku tworzącym.Aby uzyskać więcej informacji na temat tej struktury, zobacz Windows SDK.

Wartość zwracana

Wskaźnik na nowo utworzony obiekt wątku lub NULL, jeśli wystąpi awaria.

Uwagi

Pierwszy formularz AfxBeginThread tworzy wątek roboczy.Druga forma tworzy wątek, który może funkcjonować jako wątek interfejsu użytkownika lub wątek roboczy.

AfxBeginThread Tworzy nowy CWinThread obiektu, wywołuje jego funkcję Utwórz wątek , żeby rozpocząć działanie wątku i powrót wskaźnika do wątku.Kontrole są wprowadzane w trakcie trwania procedury, żeby upewnić się, że wszystkie obiekty są zdelokowane poprawnie w przypadku gdy jakakolwiek część stworzenia się nie powiedzie.Aby zakończyć wątek, wywołaj AfxEndThread z wewnątrz wątku lub zwróć z funkcji kontroli wątku roboczego.

Wielowątkowość musi być włączona przez aplikację; w przeciwnym wypadku funkcja zakończy się niepowodzeniem.Aby uzyskać więcej informacji na temat włączania wielowątkowości, zobacz /MD, /MT, /LD (Korzystaj z bibliotek wykonawczych) w Opcjach kompilatora Visual C++.

Aby uzyskać więcej informacji na temat AfxBeginThread, zobacz artykuły Wielowątkowość: Tworzenie wątków roboczych i Wielowątkowość: Tworzenie wątków interfejsu użytkownika.

Przykład

Zobacz przykład dla CSocket::Dołącz.

Wymagania

Nagłówek: afxwin.h

Zobacz też

Informacje

AfxGetThread

Koncepcje

Makra i funkcje globalne MFC