Suspend-und resume-ein C++ thread in einem anderen

Ich habe eine C++ - code mit zwei threads in es. Nach einem Ereignis " A " in thread 2, thread 1 sein sollte angehalten(suspended), einige weitere Aufgaben ausgeführt werden sollen, in thread 2 (sagen wir Fall 'B')und schließlich-thread 1 wieder aufgenommen werden sollen. Gibt es eine Möglichkeit, dies zu tun?

Mein code sieht ungefähr so aus:

HANDLE C;
DWORD WINAPI A (LPVOID in)
{
    while(1){
        //some operation
    }
    return 0;
}

DWORD WINAPI B (LPVOID in)
{
    while(1){

        //Event A occurs here

        SuspendThread (C);

        //Event B occurs here

        ResumeThread (C);
        }
    return 0;
}

int main()
{
    C = CreateThread (NULL, 0, A, NULL, 0, NULL);
    CreateThread (NULL, 0, B, NULL, 0, NULL);
    return 0;
}
  • Sie tun jetzt, was das problem ist?
  • Random deadlock, kein Zweifel.
InformationsquelleAutor Vigo | 2013-03-19
Schreibe einen Kommentar