Ergebnis 1 bis 8 von 8

Hybrid-Darstellung

  1. #1
    Bad Times Virus
    Registriert seit
    14.03.2009
    Beiträge
    579

    Standard

    Falsch.
    Code:
    #include <windows.h>
    #include <iostream>
    using namespace std;
    DWORD WINAPI banane(LPVOID); //definiert den Thread
    int main()
    {
        HANDLE hThread;
        DWORD  dwThreadID, dwExitCode;
    
        hThread = CreateThread(NULL,0,banane,0,0,&dwThreadID);
        CloseHandle(hThread);
        cout << "CloseHandle(hThread)" << endl;
        Sleep(5000);
        GetExitCodeThread(hThread, &dwExitCode);
        if(GetLastError() != ERROR_INVALID_HANDLE)
            cout << "Well, that was unexpected" << endl;
        cout << " Exit code " << dwExitCode << endl;
    }
    DWORD WINAPI banane(LPVOID data) //gibt dem Thread eine Funktion.
    {
        while(1)
        {
            cout << "Das kommt aus dem Thread!" << endl;
            Sleep(100);
        }
    };
    In diesem Bild sieht man das der Thread noch weiterläuft. (Außerdem sieht man direkt eine Gefahr des Multithreadings. Da die beiden couts "gleichzeitig" ablaufen wird der Text gemixt ausgegeben.)

    CloseHandle() bewirkt nur dass man mit diesem Handle (Handle wie der Halter an der Tasse) nichts mehr anfangen kann. Wenn danach etwas mit diesem Handle gemacht werden soll (GetExitCodeThread()) merkt diese Funktion dass dieses Handle ungültig ist und bricht ab.

  2. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    B4n4n4 (10.11.2010)

Ähnliche Themen

  1. Antworten: 7
    Letzter Beitrag: 24.10.2010, 23:55
  2. [S] 2 Dinge
    Von KayJay im Forum .NET Sprachen - Techniken
    Antworten: 7
    Letzter Beitrag: 10.04.2009, 00:15
  3. Avatar und Signatur laufen nicht synchron
    Von Mars im Forum GFX Angebote & Wünsche
    Antworten: 2
    Letzter Beitrag: 24.10.2008, 00:58

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •