Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
MFC-biblioteket (Microsoft Foundation Class) har stöd för flertrådade program. Det här avsnittet beskriver processer och trådar och MFC-metoden för multitrådning.
En process är en instans som körs av en applikation. När du till exempel dubbelklickar på anteckningsikonen startar du en process som kör Anteckningar.
En tråd är en exekveringsväg i en process. När du startar Anteckningar skapar operativsystemet en process och börjar köra den primära tråden i den processen. När den här tråden avslutas gör även processen det. Den här primära tråden levereras till operativsystemet av startkoden i form av en funktionsadress. Vanligtvis är det adressen till funktionen main eller WinMain som anges.
Du kan skapa ytterligare trådar i programmet om du vill. Du kanske vill göra detta för att hantera bakgrunds- eller underhållsaktiviteter när du inte vill att användaren ska vänta tills de har slutförts. Alla trådar i MFC-program representeras av CWinThread-objekt . I de flesta fall behöver du inte ens uttryckligen skapa dessa objekt. anropa i stället ramverkshjälpfunktionen AfxBeginThread, som skapar CWinThread objektet åt dig.
MFC särskiljer två typer av trådar: användargränssnittstrådar och arbetstrådar. Användargränssnittstrådar används ofta för att hantera användarindata och svara på händelser och meddelanden som genereras av användaren. Arbetstrådar används ofta för att slutföra uppgifter, till exempel omarbetning, som inte kräver användarinmatning. Win32-API:et skiljer inte mellan typer av trådar. den behöver bara känna till trådens startadress så att den kan börja köra tråden. MFC hanterar användargränssnittstrådar speciellt genom att tillhandahålla en meddelandepump för händelser i användargränssnittet.
CWinApp är ett exempel på ett trådobjekt i användargränssnittet, eftersom det härleds från CWinThread och hanterar händelser och meddelanden som genereras av användaren.
Särskild uppmärksamhet bör ägnas åt situationer där mer än en tråd kan kräva åtkomst till samma objekt. Multitrådning: Programmeringstips beskriver tekniker som du kan använda för att komma runt problem som kan uppstå i dessa situationer. Multitrådning: Använda synkroniseringsklasserna beskriver hur du använder de klasser som är tillgängliga för att synkronisera åtkomst från flera trådar till ett enda objekt.
Att skriva och felsöka flertrådad programmering är till sin natur ett komplicerat och knepigt åtagande, eftersom du måste se till att objekt inte nås av mer än en tråd i taget. Ämnena för multitrådning lär inte ut grunderna i flertrådad programmering, utan bara hur du använder MFC i ditt flertrådade program. De flertrådade MFC-exemplen som ingår i Visual C++ illustrerar några flertrådade tilläggsfunktioner och Win32-API:er som inte omfattas av MFC. De är dock endast avsedda att vara en startpunkt.
Mer information om hur operativsystemet hanterar processer och trådar finns i Processer och trådar i Windows SDK.
Mer information om stöd för MFC-multitrådning finns i följande avsnitt: