2 parallele Prozesse/Funktionen...



  • Moin,

    kann mir einer sagen, wie ich zwei vollkommen parallele Funktionen abspielen kann?

    Eine Funktion ruft einen "blocking call" auf. Während dieser "blocking call" wartet, soll die Funktion weiterarbeiten. Wie mache ich das?

    Wenn ihr mir Beispiele gebt, bitte mit Code!!!

    Euer ItsNotYou



  • Wenn ich das richtig verstehe, klingt das nach Multithreading. Dazu müssen die Linkereinstellungen auf Multithreaded bzw. Multithreaded debuggen geändert werden. Der Ablauf ist dann:

    - Programm startet mit einem Thread A
    - Programm startet neuen Thread B, Verarbeitung in diesem verläuft parallel
    - Thread A führt den Blocking Call (z.B. langsamer Dateizugriff o.ä. aus)
    - Thread B läuft parallel davon weiter, kann z.B. Anzeige/Statusinfo geben

    Ein Beispiel:

    #include <windows.h>
    #include <process.h>
    #include <stdio.h>
    
    void ThreadProc(PVOID);
    
    //--- Thread A
    int main()
    {
       //--- Thread B startet hier
       _beginthread(ThreadProc, 0, NULL);
    
       //--- Thread A blockt ab hier, Thread B läuft parallel weiter
       DoBlockingCall();
       return 0;
    }
    
    //--- Thread B 
    void ThreadProc(PVOID pvoid)
    {
       DoParallelStuff();
    }
    

Anmelden zum Antworten