Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: Thread nur einmal ausführen? Kategorie: Programmierung (von André H. - 18.08.2003 18:19)
Als Antwort auf Thread nur einmal ausführen? von Franz - 18.08.2003 13:21

Hallo Franz,

>  Welche Möglichkeit gibt es, dass ein Thread nur einmal ausgeführt wird - z.B.: zum Initialisieren von einem
>  Modem an hwcom, oder irgendwelchen Sensoren?

Wie Cris schon geschrieben hat, ist es besser, eine Funktion dafür zu verwenden,
als einen Thread.

Wenn die Initialisierung beim Programmstart erfolgen soll, so ist meist dies
die beste Möglichkeit:

thread main
{
 // hier die Initialisierungen:
 hwcom.init();
 hwcom.setspeed(speed);
 lcdext.init();
 // usw. ...
 loop
 {
  // ab hier das Programm
  // ...
 }
}


Die Initialisierung kann auch am Anfang des Threads stattfinden, der
auf die Resource, z.B. Modem an hwcom, zugreifen soll:

thread modem
{
 hwcom.init();
 hwcom.setspeed(speed);
 modem.init()
 loop
 {
  // Ab hier die Modem-Routinen
  // ...
 }
}

thread main
{
 lcdext.init()
 run modem;
 loop
 {
  // ab hier das Programm(Hauptthread)
  // ...
 }
}



> Mit "halt" wird der Thread zwar gestartet aber nicht ganz ausgeführt, oder?

Mit halt wird ein Thread angehalten, nicht gestartet.
Bei der implizieten Form wird der Thread an der Stelle angehalten, wo das
Schlüsselwort steht.
Bei der expliziten Form aufgerufen aus einem anderen Thread (z.B. halt modem;),
kann man nicht bestimmen, wo der Thread angehalten wird.

MfG André H.



Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten:

Re: Thread nur einmal ausführen? (von Franz - 19.08.2003 8:04)