Portierung WINAPI



  • Hallo,

    ich habe ein prog. das multithreading via WINAPI betreibt. Das Programm soll nun auf ein OS portiert werden das kein multithreading kennt. Jedenfalls habe ich damit wenig erfahrung und wollte nachfragen wie man da am besten vorgeht. Also ein Programm praktisch von den Threads zu befreien. Wirklich viele Threads hat das Programm nicht es ist übersichtlich.

    Gruß



  • Kooperatives Multitasking könntest du evtl. leicht selbst implementieren. Dann müsstest du das Multitasking zumindest nicht aus deinem Programm entfernen.


  • Mod

    Meistens geht es ja um UI Verbesserungen.
    Um das Programm erst mal zum laufen zu bringen würde ich einfach an der Stelle an der die Threads gestartet werden, die Threadfunktion ausführen...



  • Benutze std::async um Threads zu bauen. Dann kannst du mit dem ersten Parameter festlegen, ob wirklich ein Thread erstellt werden soll. Dann kannst du mit einem einfachen #define das gesamte Projekt zwischen singlethreaded und multithreaded umstellen. Für Mutexe kann man sowas auch machen.

    Du kriegst allerdings Probleme bei blockierenden Funktionsaufrufen, dann kannst du versuchen die Funktionalität mit select bzw. anderen nicht-blockierenden Funktionen hinzukriegen.

    Wahrscheinlich wäre es sinnvoller dem OS (welches?) pthreads zu spendieren.


Anmelden zum Antworten