Hvordan bruke Threading og meldinger i Visual C ++
Prosesser som kjører i bakgrunnen, som de som vises av Hendelsesliste-programmet i Windows, kan implementeres i Visual C ++ med MFC arbeider tråden. I denne opplæringen den OnOK kommando av en Dialog brukes til å ringe AfxBeginThread som igjen kaller en funksjon som lagrer data i en tekstfil - den Worker tråden.
Bruksanvisning
1 Lag en MFC Dialog i Microsoft Visual Studio. Gi den navnet MyGUI. Hvis du er usikker på hvordan dialogbokser er laget i Visual C ++, lese "Make MFC dialogbokser i MFC."
2
Kopier og lim inn følgende kode i MyGUI.cpp. Dette fungerer som Worker tråden i programmet. UINT Process (LPVOID param) { CFile fil; file.Open ( "C: \\ ... \\ mittprosjekt \\ test.txt", CFile :: modeCreate | CFile :: modeWrite); Cstring strValue; for (int i = 0; i <100; i ++) { strValue.format ( "Number:% d", i); file.Write (strValue, strValue.GetLength ()); } file.Close (); return true; } |
3
Generere OnOK kommandoen funksjon av MyGUI Dialog å sette inn AfxBeginThread funksjon. Hvis du er usikker på hvordan kommandofunksjoner er opprettet i Visual C ++, lese eHow artikkelen "Hvordan lage kommandoknapper i MFC-dialogbokser." Sett inn denne koden AfxBeginThread (Process, NULL, THREAD_PRIORITY_NORMAL, 0, 0, NULL); Messagebox ( "Tråd i gang"); inn i denne funksjonen: ugyldig CMyGUIDlg :: OnOK () { // Legg koden her } Legg merke til at den første parameter i AfxBeginThread funksjon er navnet på funksjonen som utføres som en Worker tråd. |
4
Bygg og kjøre programmet. Klikk på OK-knappen. Dette utløser Worker tråden. For å bevise at det utføres, finne filen "test.txt" under "mittprosjekt" -mappen eller hva du heter prosjektmappen. Åpne filen for å bekrefte at data har blitt skrevet til den.
Hint
- Hvis AfxBeginThread funksjonen ble kalt flere ganger med samme funksjon som sin første parameter dette ville ha vært en demonstrasjon av multi-threading.
-
Enhver funksjon som har følgende erklæring:
UINT AnyFunction (åpne parametre);
er en kandidat for en Worker tråd.