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 Franz - 19.08.2003 8:04)
Als Antwort auf Re: Thread nur einmal ausführen? von André H. - 18.08.2003 18:19

Danke

> 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.
>


    Antwort schreiben


Antworten: