CWinThread

Obiekt CWinThread reprezentuje wątek egzekucji w obrębie aplikacji. Główny wątek wykonania jest zwykle wykonywane przez obiekt pochodzących z CWinApp; CWinApp pochodzi z CWinThread. Dodatkowe obiekty CWinThread umożliwiają wielu wątków w danej aplikacji.

Istnieją dwa typy ogólne wątków, które obsługuje CWinThread : wątków roboczych i wątkami interfejsu użytkownika. Wątków roboczych mają nie pompowania komunikatów: na przykład wątek, który wykonuje obliczenia tła w arkuszu kalkulacyjnym. Interfejs użytkownika wątków mają pompowania komunikatów i przetwarzać wiadomości otrzymane z systemu. CWinApp i klas pochodnych są przykładami wątkami interfejsu użytkownika. Inne wątki interfejsu użytkownika może również pochodzić bezpośrednio z CWinThread.

Obiekty klasy CWinThread istnieją zazwyczaj na okres trwania wątku. Jeśli chcesz zmienić to zachowanie, ustaw m_bAutoDelete na FALSE.

Klasa CWinThread jest konieczne wprowadzenie kodu i MFC całkowicie bezpieczne wątek. Lokalne dla wątku dane używane w ramach utrzymania informacji specyficznych dla wątku jest zarządzany przez obiekty CWinThread . Ze względu na tym zależność od CWinThread do obsługi danych lokalne dla wątku każdy wątek, który używa usługi MFC musi być utworzony przez MFC. Na przykład, Wątek utworzony przez funkcję run-time _beginthreadex nie można używać żadnych API MFC.

Aby utworzyć wątku, wywołanie AfxBeginThread. Istnieją dwie formy, w zależności od tego, czy chcesz wątku roboczego lub interfejsu użytkownika. Chcąc, aby wątek interfejs użytkownika, przekazać do AfxBeginThread wskaźnik CRuntimeClass z CWinThread-klasy. Jeśli chcesz utworzyć wątku roboczego, przekazać AfxBeginThread wskaźnik kontroli funkcji i parametru do kontrolowania funkcji. Dla wątków roboczych i wątkami interfejsu użytkownika można określić parametry opcjonalne, które modyfikują priorytet, rozmiar stosu, tworzenie znaczników i atrybutów zabezpieczeń. AfxBeginThread Zwraca wskaźnik do nowego obiektu CWinThread.

Zamiast z wywołaniem AfxBeginThread, można skonstruować CWinThread-pochodnych obiektu, a następnie wywołać funkcji CreateThread:. Ta metoda dwa etapy budowy jest użyteczna, jeśli chcesz użyć obiektu CWinThread między kolejnymi tworzenia i końcówki wątek egzekucji.

Aby uzyskać więcej informacji o CWinThread, zobacz artykuły Multithreading C++ i MFC, Multithreading: Tworzenie wątków interfejsu użytkownika, Multithreading: tworzenia wątków roboczych, i Multithreading: używania klas synchronizacji w Visual C++ Programmer's Guide.

Członkowie klasy |nbsp; Klasa podstawowa | Wykres hierarchii

Próbki  Próbki MFC MTGDI

Zobacz też CWinApp, CCmdTarget

Index