[wxWidgets] Threads bzw. wxThread



  • Ich benötige für mein Programm nun doch Threads. Leider hab ich sowas noch nie gemacht. Ich hab jetzt 2 Stunden lang gegoogelt und keine Tutorials gefunden, die mir wirklich weiterhelfen können. Einmal sind sie in sehr abstraktem Englisch geschrieben und dann steht mal was auf Deutsch, jedoch ist dann nur soviel da, das ich auch die Hilfedatei öffnen könnte.

    Von daher frag ich einfach mal in die Runde, ob jemand ein gutes Tutorial dazu hat oder mir es vielleicht erklären kann.



  • Hat denn nicht irgendwer ein gutes Tutorial dazu mal gefunden oder sogar selber geschrieben? Biiittteeeee...



  • Da ist doch mit Sicherheit bei den Beispielen was bei.

    Außerdem solltest du dich vielleicht erstmal allgemein mit Threads beschäftigen und dann ist das überhaupt kein Problem mehr.



  • hmm... okay, aber alle Tuts die ich gefunden habe waren in absoluten Fachchinesich. Aber okay. Ich werd nochmal suchen. Ist aber relativ aussichtslos 😞



  • Fragen wir einfach mal so wo liegt denn genau das Problem?

    Ich selber hab noch nichts mit wxWidgets gemacht. Aber vielleicht kann ich dir trotzdem irgendwie helfen. Nur musst du den Teil der dir Probleme bereitet spezifizieren.

    Was willst du machen, was klappt nicht, was verstehst du nicht. Am besten postest du auch den Link auf das Tutorial das dir zuviel Fachchinesisch enthält. Dann können wir es vielleicht auch übersetzten 🙂

    Kopf hoch. 👍

    MfG



  • Okay. Also, ich will einen Thread starten und beliebig per Buttonevent stoppen.
    Hier der Link: http://www.wxwidgets.org/manuals/2.5.2/wx_wxthread.html
    Was mir Sorgen bereitet ist folgende Tatsache, das ich mit den Konstruktoren und Destruktoren überhaupt nicht zurecht komme. Bin auch noch net lange im Gebiet GUI unterwegs(eigentlich hat das nichts mit GUI zutun, aber man findets häufig dort). Wo muss ich die Konstruktoren hinschreiben? Wo definier ich den Inhalt eines Threads? Wie ich ihn starte, das dürfte kein Problem sein. Denk ich jetzt jedenfalls noch.



  • Yo, obwohl ich nie mit wxThread gearbeitet habe, aber wenn du mal die Doku gelesen hättest, wüsstest du was abgeht!

    Also, deine Klasse die Threadfähig sein soll, muß von wxThread vererben. Und dann mußt du die wxThread::Entry implementieren, so wie es auch in der Beschreibung steht. Das ist ganz normales OO-Programmieren.

    Was war jetzt Fachchinesisch dran? 🙄



  • Abgesehen davon, das ich bisher kaum objektorientiert programmiert habe und mit dem was ich kann, relativ arge Probleme hab, war alles andere eigentlich kein Fachchinesisch. 🕶

    Ginge es denn nicht auch wenn ich den Thread in die Hauptklasse bei Public definiere und dann einfach von einer anderen Klasse verwenden lasse?



  • Ganz ehrlich? Ich weiß nicht was du meinst.

    Meinst du sowas?

    class MyClass
    {
    public:
        wxThread myThread;
    };
    

    Das geht nicht, weil wxTread eine abstrakte Klasse ist. Du mußt die implementieren!

    Was ist denn jetzt so "schlecht" daran, es so zu machen, wie es von exThread vorgesehen ist?



  • Ginge es denn nicht auch wenn ich den Thread in die Hauptklasse bei Public definiere und dann einfach von einer anderen Klasse verwenden lasse?

    Das hat doch nichtmal im entferntesten was mit der Tatsache zu tun, dass wxThread eine abstrakte Klasse ist.
    Wenn du keine Ahnung hast, wie du eine abstrakte Klasseimplementierst, dann lass die Finger von GUI-Apis.

    Für mich wär auch jeder Satz "fachchinesisch", wenn ich keine Ahnung von gar nichts hätte ..



  • und fast genauso isses... 😉 ne, im ernst. Ich muss mich einfach noch ein Weilchen mit der Materie der OO-Programmierung auseinandersetzen. Vielleicht ist dieser Schritt zu schnell gewagt.



  • Sry, wegen dem Doppelposting.

    Ich habs nun zig fach probiert, doch ich stell mich mit den Threads einfach zu blöd an.

    Daher hab ich mal eine Frage. Kann mir jemand vielleicht ein Buch empfehlen, in dem es um Threads geht. Am besten, wo alle Threads mal behandelt werden. Denn wie ich mitbekommen hab, gibt es Boost-Threads, Normale C-Threads und die wxThreads.
    Am besten wär es sogar noch, wenn das Buch auf deutsch wär. Ich will das endlich verstehen.





  • Okay, mein erster Blick sollte mich vielleicht nicht abschrecken. Das wird jetzt bestellt und basta. Hoffentlich raff so ein Idi wie ich endlich mal die Thread-Geschichten. *sauer_auf_sich_selber_sei*



  • wenn du nur wissen willst wie man einen thread erstellt brauchst du dafür kein buch. das ist doch so simpel zu programmieren und zu verstehen.



  • bestell dir das buch lieber nicht.

    Wenig geeignet für Leser, die geringe Programmiererfahrung haben, solide Grundkenntnisse sind notwendig, z.B. auch Grundkenntnisse zu Entwurfsmustern oder Templates

    :p



  • Also, jemandem mit dem unregistrierten Namen "nnnnnnnnnnn" zu glauben, das man DIESES Buch braucht... man, du bist aber leichgläubig.

    Egal ob Boost-Thread, wxThread usw., unter Windows sind es IMMER Windows-Threads. Nur kapseln Boost und wxWidgets halt die Windows-Threads, mehr nicht.

    WAS verstehst du denn an Threads nicht? Weißt du nicht was du damit anfangen sollst? (dann hast du auch keinen Bedarf und solltest dich auch erstmal damit nicht beschäftigen) Oder funktioniert deine technische Umsetzung nicht? Oder willst du nur Aufmerksamkeit? Rück mal konkret mit dem Problem raus, sonst kann dir niemand helfen.



  • Ich dachte das Problem hätte ich hier schon mehrfach beschrieben.Oo

    Okay, ich hätte dieses Buch heute bestellt, weil ich endlich mal ne vernünftige Referenz haben will.
    Ich habe jetzt zig Tuts zu dem Thema Threads durchgelesen und ich komm einfach nicht zurecht damit.

    Ich hab 2 Buttons.
    Button1 = Start
    Button2 = Stop

    Wenn Button 1 gedrückt wird, startet eine Funktion mit einer Schleife. Diese Schleife hat eine Sleepfunktion mit drin.
    Button 2 soll die Schleife sozusagen stoppen. Leider reagiert nix mehr, wenn ich ohne Threads auf Button 1 drücke. Deswegen brauch ich die Threads.

    Mein Problem ist folgendes:
    Ich habe mir jetzt das Layout meines Programms zurechtdesigned. Die IDE(wxDev-cpp) liefert mir schon das lauffähigen Code mit, so das ich nur noch den Custom-Code einfügen brauch. Dummerweise weiß ich nicht, wo ich den Konstruktor und Destruktor einbringen soll. In die Hauptklasse? Extraklasse? Childclass von der Hauptklasse?

    In den Tuts stand bisher immer nur der Code, wo der Thread dann gestartet wird usw., aber nicht wo man den Konstruktor/Destruktor hinkritzelt.

    Ich sag doch, ich bin einfach zum dämlich für Threads. 😞



  • Takeo du brauchst ein C++ Buch und kein Buch über Threads. ⚠



  • Ich hab 3 Bücher darüber und das einzige womit ich Probleme hab sind Klassen und Threads. Bis jetzt jedenfalls. Alles was vor den Klassen dran kam war nicht das Problem.
    Naja, jetzt sind bald Ferien und da werd ich mich mal hinsetzen und versuchen das ganze zu verstehen.


Anmelden zum Antworten