MainThread und Console-Anwendungen

Dieses Thema im Forum "Mac OS Entwickler, Programmierer" wurde erstellt von nxthor, 23.09.2005.

  1. nxthor

    nxthor Thread Starter MacUser Mitglied

    Beiträge:
    7
    Zustimmungen:
    0
    Mitglied seit:
    05.09.2005
    Hi!
    Ich habe folgendes Problem:
    Zu Meinem Programm mit GUI und ViewControllerModel- Aufbau will ich per configuration auch ohne GUI starten.... dazu habe ich mir bislang die main.mm umgebaut, und das return NSApplication vermieden, um in der Console zu bleiben, und keine Fenster zu öffnen. Jedoch habe ich nun das Problem, das der MainThread natürlich nach starten aller Sub-Threads, die befehle auf dem Mainthread ausführen, terminiert, und das Programm schlicht weg fertig ist, und aus die Maus....

    Habe ich was übersehen? wie kann ich den MainThread aufhalten zu terminieren, ohne dass er keine Befehle aus anderen Threads via performOnMainThread: annimmt? (ein einfaches cin reicht nicht, dann blockiert das cin die neuen Aufrufe...)

    Grüße,
    NX
     
  2. andi.reidies

    andi.reidies MacUser Mitglied

    Beiträge:
    420
    Zustimmungen:
    0
    Mitglied seit:
    08.02.2005
    Du musst ne Synchronisation des Hauptthreads mit den Subthreads einfügen.

    Wie Du das machen musst, hängt von der art der Thread-erzeugung ab (NSThread, POSIX Threads etc.).

    Am besten mal in die Dev-Doku schauen: stichwort Multithreading.

    Der Hauptthread DARF sich erst beenden, nachdem alle Subthreads den Status FERTIG gemeldet haben.....
     
  3. nxthor

    nxthor Thread Starter MacUser Mitglied

    Beiträge:
    7
    Zustimmungen:
    0
    Mitglied seit:
    05.09.2005
    Hi!
    Ich habe es mit einem konstruierten Lock gemacht (eine methode, die einen thraed darstellt hat einen NSLock gesetzt, und die Mainmethode versucht das auch auszuführen, was nicht gelingt, dadas Lock sitzt. Leider passierten immernoch keine Methodenaufrufe, die mit perfromOnMainThread aufgerufen werden - scheinbar ist der Mainthread immernoch gesperrt, weil er auf das Lock wartet.... MIT Gui klappt wunderbar, ich vermute deswegen, weil die NSApplication-Umgebung irgendwas tollen kann... gibt es kein Äquivalent zur NSApplication mit GUI im SInner einer Consolen-Application... die evtl die selbe Tolle Umgebung mitbringt?

    Grüße,
    NX
     
Die Seite wird geladen...

Diese Seite empfehlen