Share via


CWinThread-klasse

Opmerking

De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Vertegenwoordigt een thread van uitvoering binnen een toepassing.

Syntaxis

class CWinThread : public CCmdTarget

Leden

Openbare constructors

Naam Description
CWinThread::CWinThread Maakt een CWinThread-object.

Openbare methoden

Naam Description
CWinThread::CreateThread Hiermee start u de uitvoering van een CWinThread object.
CWinThread::ExitInstance Overschrijven om op te schonen wanneer uw thread wordt beëindigd.
CWinThread::GetMainWnd Hiermee wordt een aanwijzer naar het hoofdvenster voor de thread opgehaald.
CWinThread::GetThreadPriority Hiermee wordt de prioriteit van de huidige thread opgehaald.
CWinThread::InitInstance Overschrijven om initialisatie van threadexemplaren uit te voeren.
CWinThread::IsIdleMessage Controleert op speciale berichten.
CWinThread::OnIdle Overschrijven om threadspecifieke niet-actieve tijdverwerking uit te voeren.
CWinThread::PostThreadMessage Plaatst een bericht in een ander CWinThread object.
CWinThread::PreTranslateMessage Filtert berichten voordat ze worden verzonden naar de Windows-functies TranslateMessage en DispatchMessage.
CWinThread::ProcessMessageFilter Onderschept bepaalde berichten voordat ze de toepassing bereiken.
CWinThread::ProcessWndProcException Onderschept alle niet-verwerkte uitzonderingen die worden gegenereerd door het bericht en de opdrachthandlers van de thread.
CWinThread::PumpMessage Bevat de berichtlus van de thread.
CWinThread::ResumeThread Het aantal onderbrekingen van een thread wordt verlaagd.
CWinThread::Run Controlefunctie voor threads met een berichtpomp. Overschrijven om de standaardberichtlus aan te passen.
CWinThread::SetThreadPriority Hiermee stelt u de prioriteit van de huidige thread in.
CWinThread::SuspendThread Hiermee wordt het aantal onderbrekingen van een thread verhoogd.

Openbare operators

Naam Description
CWinThread::operator HANDLE Haalt de ingang van het CWinThread object op.

Publieke dataleden

Naam Description
CWinThread::m_bAutoDelete Hiermee geeft u op of het object moet worden vernietigd bij beëindiging van threads.
CWinThread::m_hThread Greep naar de huidige thread.
CWinThread::m_nThreadID Id van de huidige thread.
CWinThread::m_pActiveWnd Wijs het hoofdvenster van de containertoepassing aan wanneer een OLE-server actief is.
CWinThread::m_pMainWnd Bevat een aanwijzer naar het hoofdvenster van de toepassing.

Opmerkingen

De belangrijkste thread van uitvoering wordt meestal geleverd door een object dat is afgeleid van CWinApp; CWinApp is afgeleid van CWinThread. Aanvullende CWinThread objecten staan meerdere threads binnen een bepaalde toepassing toe.

Er zijn twee algemene typen threads die CWinThread ondersteuning bieden voor werkthreads en gebruikersinterfacethreads. Werkrolthreads hebben geen berichtpomp: bijvoorbeeld een thread die achtergrondberekeningen uitvoert in een spreadsheettoepassing. Threads in de gebruikersinterface hebben een berichtpomp en verwerken berichten die van het systeem zijn ontvangen. CWinApp en klassen die hiervan zijn afgeleid, zijn voorbeelden van threads in de gebruikersinterface. Andere threads van de gebruikersinterface kunnen ook rechtstreeks worden afgeleid van CWinThread.

Objecten van klasse CWinThread bestaan doorgaans voor de duur van de thread. Als u dit gedrag wilt wijzigen, stelt u deze optie in m_bAutoDelete op FALSE.

De CWinThread klasse is nodig om uw code en MFC volledig thread-veilig te maken. Thread-lokale gegevens die door het framework worden gebruikt om threadspecifieke informatie te onderhouden, wordt beheerd door CWinThread objecten. Vanwege deze afhankelijkheid van CWinThread het verwerken van thread-lokale gegevens, moet elke thread die gebruikmaakt van MFC worden gemaakt door MFC. Een thread die is gemaakt door de runtimefunctie _beginthread, _beginthreadex kan bijvoorbeeld geen MFC-API's gebruiken.

Als u een thread wilt maken, roept u het aan AfxBeginThread. Er zijn twee formulieren, afhankelijk van of u een werkrol- of gebruikersinterfacethread wilt. Als u een gebruikersinterfacethread wilt, geeft AfxBeginThread u een aanwijzer door aan de CRuntimeClass van uw CWinThread-afgeleide klasse. Als u een werkrolthread wilt maken, geeft u een aanwijzer door naar AfxBeginThread de besturingsfunctie en de parameter voor de besturingsfunctie. Voor zowel werkthreads als gebruikersinterfacethreads kunt u optionele parameters opgeven die prioriteit, stackgrootte, aanmaakvlagken en beveiligingskenmerken wijzigen. AfxBeginThread retourneert een aanwijzer naar uw nieuwe CWinThread object.

In plaats van aan te roepen AfxBeginThread, kunt u een CWinThread-afgeleide object maken en vervolgens aanroepen CreateThread. Deze constructiemethode in twee fasen is handig als u het CWinThread object wilt hergebruiken tussen opeenvolgende creatie en beëindigingen van threaduitvoeringen.

CWinThreadZie de artikelen Multithreading met C++ en MFC, Multithreading: Creating User-Interface Threads, Multithreading: Creating Worker Threads, and Multithreading: How to Use the Synchronization Classes.

Overnamehiërarchie

CObject

CCmdTarget

CWinThread

Requirements

Rubriek:afxwin.h

CWinThread::CreateThread

Hiermee maakt u een thread die moet worden uitgevoerd binnen de adresruimte van het aanroepende proces.

BOOL CreateThread(
    DWORD dwCreateFlags = 0,
    UINT nStackSize = 0,
    LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL);

Parameterwaarden

dwCreateFlags
Hiermee geeft u een extra vlag op waarmee het maken van de thread wordt bepaald. Deze vlag kan een van de volgende twee waarden bevatten:

  • CREATE_SUSPENDED Start de thread met een onderbrekingsaantal van één. Gebruik CREATE_SUSPENDED deze optie als u lidgegevens van het CWinThread object, zoals m_bAutoDelete of leden van uw afgeleide klasse, wilt initialiseren voordat de thread wordt uitgevoerd. Zodra de initialisatie is voltooid, gebruikt u de CWinThread::ResumeThread thread die wordt uitgevoerd. De thread wordt pas uitgevoerd als CWinThread::ResumeThread deze wordt aangeroepen.

  • 0 Start de thread direct na het maken.

nStackSize
Hiermee geeft u de grootte in bytes van de stack voor de nieuwe thread. Als 0, wordt de grootte van de stack standaard ingesteld op dezelfde grootte als die van de primaire thread van het proces.

lpSecurityAttrs
Verwijst naar een SECURITY_ATTRIBUTES structuur die de beveiligingskenmerken voor de thread aangeeft.

Retourwaarde

Niet-nul als de thread is gemaakt; anders 0.

Opmerkingen

Gebruik AfxBeginThread dit om een threadobject te maken en in één stap uit te voeren. Gebruik CreateThread dit als u het threadobject opnieuw wilt gebruiken tussen het maken en beëindigen van threaduitvoeringen.

CWinThread::CWinThread

Maakt een CWinThread-object.

CWinThread();

Opmerkingen

Als u de uitvoering van de thread wilt starten, roept u de CreateThread lidfunctie aan. Meestal maakt u threads door aan te roepen AfxBeginThread, waarmee deze constructor en CreateThread.

CWinThread::ExitInstance

Aangeroepen door het framework vanuit een zelden overschreven Run lidfunctie om dit exemplaar van de thread af te sluiten of als een aanroep mislukt InitInstance .

virtual int ExitInstance();

Retourwaarde

De afsluitcode van de thread; 0 geeft geen fouten aan en waarden groter dan 0 geven een fout aan. Deze waarde kan worden opgehaald door aan te roepen GetExitCodeThread.

Opmerkingen

Roep deze lidfunctie niet vanaf elke locatie aan, maar binnen de Run lidfunctie. Deze lidfunctie wordt alleen gebruikt in threads van de gebruikersinterface.

Met de standaard implementatie van deze functie wordt het CWinThread object verwijderd als m_bAutoDelete dat zo is TRUE. Overschrijf deze functie als u extra opschoonbewerkingen wilt uitvoeren wanneer uw thread wordt beëindigd. Uw implementatie van moet de versie van ExitInstance de basisklasse aanroepen nadat uw code is uitgevoerd.

CWinThread::GetMainWnd

Als uw toepassing een OLE-server is, roept u deze functie aan om een aanwijzer op te halen naar het actieve hoofdvenster van de toepassing in plaats van rechtstreeks te verwijzen naar het m_pMainWnd lid van het toepassingsobject.

virtual CWnd* GetMainWnd();

Retourwaarde

Deze functie retourneert een aanwijzer naar een van de twee typen vensters. Als uw thread deel uitmaakt van een OLE-server en een object heeft dat actief is in een actieve container, retourneert deze functie het CWinApp::m_pActiveWnd gegevenslid van het CWinThread object.

Als er geen object is dat in-place actief is binnen een container of als uw toepassing geen OLE-server is, retourneert deze functie het m_pMainWnd gegevenslid van het threadobject.

Opmerkingen

Voor threads met de gebruikersinterface is dit gelijk aan het rechtstreeks verwijzen naar het m_pActiveWnd lid van uw toepassingsobject.

Als uw toepassing geen OLE-server is, is het aanroepen van deze functie gelijk aan het rechtstreeks verwijzen naar het m_pMainWnd lid van uw toepassingsobject.

Overschrijf deze functie om het standaardgedrag te wijzigen.

CWinThread::GetThreadPriority

Hiermee wordt het prioriteitsniveau van de huidige thread van deze thread opgehaald.

int GetThreadPriority();

Retourwaarde

Het huidige threadprioriteitsniveau binnen de prioriteitsklasse. De geretourneerde waarde is een van de volgende, die wordt weergegeven van de hoogste prioriteit naar het laagste:

  • THREAD_PRIORITY_TIME_CRITICAL

  • THREAD_PRIORITY_HIGHEST

  • THREAD_PRIORITY_ABOVE_NORMAL

  • THREAD_PRIORITY_NORMAL

  • THREAD_PRIORITY_BELOW_NORMAL

  • THREAD_PRIORITY_LOWEST

  • THREAD_PRIORITY_IDLE

Zie de Windows SDK voor meer informatie over deze prioriteiten SetThreadPriority .

CWinThread::InitInstance

InitInstance moet worden overschreven om elk nieuw exemplaar van een gebruikersinterfacethread te initialiseren.

virtual BOOL InitInstance();

Retourwaarde

Niet-nul als initialisatie is geslaagd; anders 0.

Opmerkingen

Normaal gesproken overschrijft InitInstance u taken die moeten worden voltooid wanneer een thread voor het eerst wordt gemaakt.

Deze lidfunctie wordt alleen gebruikt in threads van de gebruikersinterface. Initialisatie van werkthreads uitvoeren in de besturingsfunctie die wordt doorgegeven aan AfxBeginThread.

CWinThread::IsIdleMessage

Overschrijf deze functie om te voorkomen dat OnIdle deze wordt aangeroepen nadat specifieke berichten zijn gegenereerd.

virtual BOOL IsIdleMessage(MSG* pMsg);

Parameterwaarden

pMsg
Verwijst naar het huidige bericht dat wordt verwerkt.

Retourwaarde

Nonzero als OnIdle moet worden aangeroepen na het verwerken van bericht; anders 0.

Opmerkingen

De standaard implementatie wordt niet aangeroepen OnIdle na redundante muisberichten en berichten die worden gegenereerd door knipperende carets.

Als een toepassing een korte timer heeft gemaakt, OnIdle wordt deze vaak aangeroepen, wat prestatieproblemen veroorzaakt. Als u de prestaties van een dergelijke toepassing wilt verbeteren, overschrijft IsIdleMessage u deze in de afgeleide klasse van de toepassing CWinAppom als volgt te controleren op WM_TIMER berichten:

BOOL CMyWinApp::IsIdleMessage(MSG* pMsg)
{
   if (!CWinApp::IsIdleMessage(pMsg) || pMsg->message == WM_TIMER)
      return FALSE;
   else
      return TRUE;
}

De verwerking op WM_TIMER deze manier verbetert de prestaties van toepassingen die gebruikmaken van korte timers.

CWinThread::m_bAutoDelete

Hiermee geeft u op of het CWinThread object automatisch moet worden verwijderd bij threadbeëindiging.

BOOL m_bAutoDelete;

Opmerkingen

Het m_bAutoDelete gegevenslid is een openbare variabele van het type BOOL.

De waarde van m_bAutoDelete dit heeft geen invloed op de manier waarop de onderliggende threadgreep wordt gesloten, maar heeft wel invloed op de timing van het sluiten van de ingang. De draadgreep wordt altijd gesloten wanneer het CWinThread object wordt vernietigd.

CWinThread::m_hThread

Greep aan de thread die aan deze CWinThreadthread is gekoppeld.

HANDLE m_hThread;

Opmerkingen

Het m_hThread gegevenslid is een openbare variabele van het type HANDLE. Dit is alleen geldig als het onderliggende kernelthreadobject momenteel bestaat en de ingang nog niet is gesloten.

De CWinThread destructor roept opm_hThreadCloseHandle. TRUE Als m_bAutoDelete de thread wordt beëindigd, wordt het CWinThread object vernietigd, waardoor eventuele aanwijzers naar het object en de CWinThread bijbehorende lidvariabelen ongeldig worden gemaakt. Mogelijk hebt u het m_hThread lid nodig om de afsluitwaarde van de thread te controleren of om te wachten op een signaal. Als u het object en m_hThread het bijbehorende lid wilt behouden tijdens het CWinThread uitvoeren van threads en nadat het is beëindigd, stelt u in m_bAutoDeleteFALSE op voordat u de uitvoering van threads toestaat om door te gaan. Anders kan de thread het CWinThread object beëindigen, vernietigen en de ingang sluiten voordat u het probeert te gebruiken. Als u deze techniek gebruikt, bent u verantwoordelijk voor het verwijderen van het CWinThread object.

CWinThread::m_nThreadID

Id van de thread die aan deze CWinThreadthread is gekoppeld.

DWORD m_nThreadID;

Opmerkingen

Het m_nThreadID gegevenslid is een openbare variabele van het type DWORD. Dit is alleen geldig als het onderliggende kernelthreadobject momenteel bestaat. Zie ook opmerkingen over m_hThread de levensduur.

Example

Zie het voorbeeld voor AfxGetThread.

CWinThread::m_pActiveWnd

Gebruik dit gegevenslid om een aanwijzer op te slaan naar het actieve vensterobject van uw thread.

CWnd* m_pActiveWnd;

Opmerkingen

De Microsoft Foundation Class Library beëindigt uw thread automatisch wanneer het venster waarnaar wordt verwezen m_pActiveWnd , wordt gesloten. Als deze thread de primaire thread voor een toepassing is, wordt de toepassing ook beëindigd. Als dit gegevenslid is NULL, wordt het actieve venster voor het object van CWinApp de toepassing overgenomen. m_pActiveWnd is een openbare variabele van het type CWnd*.

Normaal gesproken stelt u deze lidvariabele in wanneer u deze overschrijft InitInstance. In een werkrolthread wordt de waarde van dit gegevenslid overgenomen van de bovenliggende thread.

CWinThread::m_pMainWnd

Gebruik dit gegevenslid om een aanwijzer op te slaan naar het hoofdvensterobject van uw thread.

CWnd* m_pMainWnd;

Opmerkingen

De Microsoft Foundation Class Library beëindigt uw thread automatisch wanneer het venster waarnaar wordt verwezen m_pMainWnd , wordt gesloten. Als deze thread de primaire thread voor een toepassing is, wordt de toepassing ook beëindigd. Als dit gegevenslid is NULL, wordt het hoofdvenster voor het object van CWinApp de toepassing gebruikt om te bepalen wanneer de thread moet worden beëindigd. m_pMainWnd is een openbare variabele van het type CWnd*.

Normaal gesproken stelt u deze lidvariabele in wanneer u deze overschrijft InitInstance. In een werkrolthread wordt de waarde van dit gegevenslid overgenomen van de bovenliggende thread.

CWinThread::OnIdle

Overschrijf deze lidfunctie om niet-actieve tijdverwerking uit te voeren.

virtual BOOL OnIdle(LONG lCount);

Parameterwaarden

lCount
Telkens wanneer de berichtenwachtrij van de thread leeg is, wordt een teller verhoogd OnIdle . Dit aantal wordt opnieuw ingesteld op 0 telkens wanneer een nieuw bericht wordt verwerkt. U kunt de lCount parameter gebruiken om te bepalen hoe lang de thread inactief is geweest zonder een bericht te verwerken.

Retourwaarde

Niet-nul om meer niet-actieve verwerkingstijd te ontvangen; 0 als er geen niet-actieve verwerkingstijd meer nodig is.

Opmerkingen

OnIdle wordt aangeroepen in de standaardberichtlus wanneer de berichtenwachtrij van de thread leeg is. Gebruik uw onderdrukking om uw eigen niet-actieve taken op de achtergrond aan te roepen.

OnIdle moet 0 retourneren om aan te geven dat er geen extra niet-actieve verwerkingstijd is vereist. De lCount parameter wordt steeds OnIdle verhoogd wanneer de berichtenwachtrij leeg is en opnieuw wordt ingesteld op 0 telkens wanneer een nieuw bericht wordt verwerkt. U kunt uw verschillende niet-actieve routines aanroepen op basis van dit aantal.

Met de standaard implementatie van deze lidfunctie worden tijdelijke objecten en ongebruikte dynamische koppelingsbibliotheken uit het geheugen vrijgemaakt.

Deze lidfunctie wordt alleen gebruikt in threads van de gebruikersinterface.

Omdat de toepassing geen berichten kan verwerken totdat OnIdle ze worden geretourneerd, voert u geen lange taken uit in deze functie.

CWinThread::operator HANDLE

Haalt de ingang van het CWinThread object op.

operator HANDLE() const;

Retourwaarde

Als dit lukt, wordt de ingang van het threadobject gebruikt; anders, NULL.

Opmerkingen

Gebruik de ingang om rechtstreeks Windows-API's aan te roepen.

CWinThread::PostThreadMessage

Wordt aangeroepen om een door de gebruiker gedefinieerd bericht te posten naar een ander CWinThread object.

BOOL PostThreadMessage(
    UINT message,
    WPARAM wParam,
    LPARAM lParam);

Parameterwaarden

message
Id van het door de gebruiker gedefinieerde bericht.

wParam
Eerste berichtparameter.

lParam
Tweede berichtparameter.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

Het geplaatste bericht wordt toegewezen aan de juiste berichthandler door de berichtkaartmacro ON_THREAD_MESSAGE.

Opmerking

Wanneer u belt PostThreadMessage, wordt het bericht in de berichtenwachtrij van de thread geplaatst. Omdat berichten die op deze manier zijn gepost, echter niet zijn gekoppeld aan een venster, worden ze niet verzonden naar berichten of opdrachthandlers. Als u deze berichten wilt afhandelen, overschrijft u de PreTranslateMessage() functie van uw CWinApp-afgeleide klasse en verwerkt u de berichten handmatig.

CWinThread::PreTranslateMessage

Overschrijf deze functie om vensterberichten te filteren voordat ze worden verzonden naar de Windows-functies TranslateMessage en DispatchMessage.

virtual BOOL PreTranslateMessage(MSG* pMsg);

Parameterwaarden

pMsg
Verwijst naar een MSG structuur die het bericht bevat dat moet worden verwerkt.

Retourwaarde

Niet-nul als het bericht volledig is verwerkt PreTranslateMessage en niet verder mag worden verwerkt. Nul als het bericht op de normale manier moet worden verwerkt.

Opmerkingen

Deze lidfunctie wordt alleen gebruikt in threads van de gebruikersinterface.

CWinThread::ProcessMessageFilter

Met de hook-functie van het framework wordt deze lidfunctie aangeroepen om bepaalde Windows-berichten te filteren en erop te reageren.

virtual BOOL ProcessMessageFilter(
    int code,
    LPMSG lpMsg);

Parameterwaarden

code
Hiermee geeft u een hook-code op. Deze lidfunctie gebruikt de code om te bepalen hoe moet worden verwerkt lpMsg.

lpMsg
Een aanwijzer naar een Windows-structuurMSG.

Retourwaarde

Niet-nul als het bericht wordt verwerkt; anders 0.

Opmerkingen

Een hook-functie verwerkt gebeurtenissen voordat ze worden verzonden naar de normale berichtverwerking van de toepassing.

Als u deze geavanceerde functie overschrijft, moet u de basisklasseversie aanroepen om de hookverwerking van het framework te behouden.

CWinThread::ProcessWndProcException

Het framework roept deze lidfunctie aan wanneer de handler geen uitzondering ondervangt die is opgetreden in een van de bericht- of opdrachthandlers van uw thread.

virtual LRESULT ProcessWndProcException(
    CException* e,
    const MSG* pMsg);

Parameterwaarden

e
Verwijst naar een niet-verwerkte uitzondering.

pMsg
Verwijst naar een MSG structuur met informatie over het windows-bericht waardoor het framework een uitzondering genereert.

Retourwaarde

-1 als er een WM_CREATE uitzondering wordt gegenereerd; anders 0.

Opmerkingen

Roep deze lidfunctie niet rechtstreeks aan.

De standaard implementatie van deze lidfunctie verwerkt alleen uitzonderingen die zijn gegenereerd op basis van de volgende berichten:

Command Handeling
WM_CREATE Niet.
WM_PAINT Valideer het betreffende venster, waardoor er geen ander WM_PAINT bericht kan worden gegenereerd.

Overschrijf deze lidfunctie om algemene verwerking van uw uitzonderingen te bieden. Roep de basisfunctionaliteit alleen aan als u het standaardgedrag wilt weergeven.

Deze lidfunctie wordt alleen gebruikt in threads met een berichtpomp.

CWinThread::PumpMessage

Bevat de berichtlus van de thread.

virtual BOOL PumpMessage();

Opmerkingen

PumpMessage bevat de berichtlus van de thread. PumpMessage wordt aangeroepen om CWinThread de berichten van de thread te pompen. U kunt rechtstreeks aanroepen PumpMessage om af te dwingen dat berichten worden verwerkt of u kunt overschrijven PumpMessage om het standaardgedrag te wijzigen.

Bellen PumpMessage rechtstreeks en overschrijven van het standaardgedrag wordt alleen aanbevolen voor geavanceerde gebruikers.

CWinThread::ResumeThread

Aangeroepen om de uitvoering van een thread te hervatten die is onderbroken door de SuspendThread lidfunctie of een thread die is gemaakt met de CREATE_SUSPENDED vlag.

DWORD ResumeThread();

Retourwaarde

De vorige onderbrekingstelling van de thread als dit lukt; 0xFFFFFFFF Anders. Als de retourwaarde nul is, is de huidige thread niet onderbroken. Als de retourwaarde er een is, is de thread onderbroken, maar is deze nu opnieuw gestart. Elke retourwaarde groter dan één betekent dat de thread onderbroken blijft.

Opmerkingen

Het aantal onderbrekingen van de huidige thread wordt met één gereduceerd. Als het aantal onderbrekingen wordt teruggebracht tot nul, wordt de uitvoering van de thread hervat; anders blijft de thread onderbroken.

CWinThread::Run

Biedt een standaardberichtlus voor gebruikersinterfacethreads.

virtual int Run();

Retourwaarde

Een int waarde die wordt geretourneerd door de thread. Deze waarde kan worden opgehaald door aan te roepen GetExitCodeThread.

Opmerkingen

Run verkrijgt en verzendt Windows-berichten totdat de toepassing een WM_QUIT bericht ontvangt. Als de berichtenwachtrij van de thread momenteel geen berichten bevat, Run worden aanroepen OnIdle uitgevoerd om inactiviteit te verwerken. Inkomende berichten gaan naar de PreTranslateMessage lidfunctie voor speciale verwerking en vervolgens naar de Windows-functie TranslateMessage voor standaardtoetsenbordvertaling. Ten slotte wordt de DispatchMessage Windows-functie aangeroepen.

Run wordt zelden overschreven, maar u kunt het overschrijven om speciaal gedrag te implementeren.

Deze lidfunctie wordt alleen gebruikt in threads van de gebruikersinterface.

CWinThread::SetThreadPriority

Met deze functie wordt het prioriteitsniveau van de huidige thread ingesteld binnen de prioriteitsklasse.

BOOL SetThreadPriority(int nPriority);

Parameterwaarden

nPriority
Hiermee geeft u het nieuwe threadprioriteitsniveau binnen de prioriteitsklasse op. Deze parameter moet een van de volgende waarden zijn, vermeld van hoogste prioriteit tot laagste:

  • THREAD_PRIORITY_TIME_CRITICAL

  • THREAD_PRIORITY_HIGHEST

  • THREAD_PRIORITY_ABOVE_NORMAL

  • THREAD_PRIORITY_NORMAL

  • THREAD_PRIORITY_BELOW_NORMAL

  • THREAD_PRIORITY_LOWEST

  • THREAD_PRIORITY_IDLE

Zie de Windows SDK voor meer informatie over deze prioriteiten SetThreadPriority .

Retourwaarde

Niet-nul als de functie is geslaagd; anders 0.

Opmerkingen

Deze kan alleen worden aangeroepen nadat CreateThread deze is geretourneerd.

CWinThread::SuspendThread

Hiermee wordt het aantal onderbrekingen van de huidige thread verhoogd.

DWORD SuspendThread();

Retourwaarde

De vorige onderbrekingstelling van de thread als dit lukt; 0xFFFFFFFF Anders.

Opmerkingen

Als een thread een aantal onderbrekingen boven nul heeft, wordt die thread niet uitgevoerd. De thread kan worden hervat door de ResumeThread lidfunctie aan te roepen.

Zie ook

CCmdTarget klasse
Hiërarchiegrafiek
CWinApp klasse
CCmdTarget klasse