C++ Verständinisfragen: Multithreading + GUI (.net Framework 4.0)

shrek456

Lieutenant
Registriert
Dez. 2009
Beiträge
631
Bin gerade dabei für die Schule ein Programm zu schreiben, das eine Wetterstation "simuliert".

Dabei habe ich zwei Verständnisprobleme, erstens Multithreading(da z.b. die Uhr ein gekapseltes zeitereignis besitzt, das jede Sekunde ausgelöst wird), und zum anderen die Oberfläche die mit .net Framework gestaltet wird.

Ich beginne einfach mit letzerem das es, denke ich, das leichtere Problem ist:

1.

Da die Temperatur, Uhrzeit etc. ausgegeben werden sollen, dachte ich ich benutze dazu "Labels", nur weiß ich nicht wie ich diesen einen neuen Text zuweise, geschieht dies mit

Code:
this->label7->Text = L"label7";
oder muss ich das "this" weglassen wenn ich aus einer anderen Methode die Beschriftung ändern will? Quasi so:

Code:
label7->Text = L"label7";

So jetzt zum zweiten Problem, dem Multithreading:

2.

Ich habe folgendes Klassendiagramm(Bild 1, Aufgabenstellung Bild 2), dort seht ihr unter der Klasse Uhr den Kommentar. Da ich keine Hardwareuhr besitze (und die OS-Uhrzeit nicht auslesen will), dachte ich das ich eine Art "Uhrsimulation" schreibe, die in einem extra Thread läuft und es mir somit ermöglicht sowohl die Aktualisierung der Werte, wie auch die Uhrzeit zu verwirklichen. Im Web bin ich auf boost::thread gestoßen, allerdings finde ich nur englische Tutorials, und diese sind zudem auch noch relativ unübersichtlich.

Kennt hier vielleicht jemand ein gutes deutsches Tutorial zu boost::thread oder allgemein zu Multithreading? Oder kann es mir vielleicht sogar jemand hier im Forum erklären?

Wäre dafür sehr dankbar.

PS. Ich weiß das diese Fragen eigentlich dumm sind, aber ich habe seither noch nie mit C++ oder Multithreading gearbeitet. (Seither immer Java, ohne MT)

Freue mich auf eure Hilfe/Anregungen(falls die Idee mit Multithreading doof ist^^), wenn ihr mehr Infos braucht, kann ich diese gerne nachreichen :)

Mit freundlichen Grüßen

Shrek456
 

Anhänge

  • Klassendiagram,.PNG
    Klassendiagram,.PNG
    98,4 KB · Aufrufe: 289
  • Aufgabenstellung_Teil_Uhr.PNG
    Aufgabenstellung_Teil_Uhr.PNG
    80,8 KB · Aufrufe: 204
Es sind Verständnisfragen, ich will nicht das ihr mir mein Programm schreiben(ist im übrigen fast fertig, nur noch die Multithreading Sache fehlt, und das wurde in der Schule nie behandelt(Technisches Gymnasium)), es wäre einfach nur schön wenn mir jemand nen gutes Tutorial zeigen könnte, das würde vollkommen reichen, bzw. es mir erklärt. Wenn ich wöllte das ihr mir das komplette Programm schreibt, hätte ich das mit der Schule wohl kaum hingeschrieben.

Ziel der Übung ist es auch nicht das das Programm vollständig läuft, sondern das die vorgeschriebene Struktogramme, Zustandsdiagramme und Sequenzdiagramme umgesetzt werden, nach denen ich hier auch nicht frage, die sind nämlich schon bearbeitet, würde es nur einfach gerne zum laufen bekommen, um mal ein fertiges, vollständig lauffähiges Programm mit GUI zu besitzen(das nicht in Java geschrieben ist). Desweiteren eben auch fürs Ego, wer freut sich den nicht wenn er mal was größeres geschafft hat?

Ich kann auch gerne, die Struktogramme, Sequenzdiagramme, Zustandsdiagramme, Aufgaben und meine Quellcode hier reinposten, falls es euch das beruhigen, das ihr mir nicht die Hausaufgaben erledigt :)
 
Erst mal ... soweit du diesen Ausdruck innerhalb einer Methode der Klasse (die label7 als eins ihrer Member hat) schreibst, ist dies

Code:
this->label7->Text = L"label7";

und dies

Code:
label7->Text = L"label7";

absolut das Gleiche. *1

Die Doku für boost.thread ist an Doku übrigens so ziemlich erste Sahne. Im Vergleich dazu sieht's bei den meisten anderen Modulen (boost oder nicht) ziemlich düster aus. Und ohne Englisch bist du als Programmierer so wie so erschossen; wirst du also nicht drum herum kommen.

P.S. Es sei denn, es gibt Namenskollisionen zwischen label7 als Member und irgend einem anderen label7 (globale Variable, Übergabeparameter). In diesem Fall würde dann this->label7->Text eindeutig das Klassenmember ansprechen.
 
Zuletzt bearbeitet:
ok danke, dann werd ich mir mal die Doku anschauen, und nicht nach einem Tutorial suchen. Hab die Doku deswegen noch nicht bedacht weil die meisten Dokus die ich kenne wie du auch schon sagst relativ schlecht sind.

Englisch kann ich ja, nur waren die Tutorials immer relativ schlecht geschrieben, oder schlecht strukturiert.
 
Zurück
Oben