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

Re: Einen Task mehrmals starten? Kategorie: Programmierung (von der andy - 6.01.2006 12:30)
Als Antwort auf Re: Einen Task mehrmals starten? von Josef Austen - 21.12.2005 13:39

> > Hi!
> >
> > Kann man einen Task mehrmals starten?
> > Also sagen wir ich hätte einen Task der einen Digitalport beobachtet und je nach Wert ein Relais schaltet
> > oder halt nicht. Kann man diesen Task mehrmals starten so in der Art einer Klasse? Wenn ich den Task
> > mit run xy startet verweiÃ?t er ja immer wieder auf den gleichen Speicherbereich womit ich ihn ja nicht
> > instanziert habe.
> >
> > der andy
> >
>
> Tach !
> Was willst Du eigentlich machen ?
>
>
> Ich lege solche Aufgaben eigentlich immer in einen Thread.
> Diesen rufe ich EINMAL auf und schon läuft die Sache locker immer wieder durch.
> Sollten bestimmte Port-Zustände in anderen Programmteilen benötigt werden muss man sie halt eben in
> globalen Variablen hinterlegen.
>
> Hat eigentlich immer gefunzt ...
>
> Josef

Ich habe externe LCD Anzeigen die vom C-Control seriell angesteuert werden. Es muÃ? sicher gestellt sein
dass die Anzeigen das darstellen was angedacht ist. Dazu frage ich die Anzeige alle x Sekunden ab.
Hätte ich jetzt Tasks die mehrmals gestartet werden können (wie gesagt ähnlich einer Klasse) schreibe
ich einmal den Code für die Initialisierung der Anzeige und die Synchronisierung kann ich das für alle
Anzeigen logischerweise gleich benutzen und alle Anzeigen funktionieren voneinander unabhängig.
Beispiel: Thread für Anzeige 1,2 und 3 werden gestartet. Anzeige 1 und 3 initialisieren sich korrekt und
funktionieren. Anzeige 2 initialisiert sich nicht weil z.B. keinen Strom. Je nachdem wie "dumm" mein Code
ist blockiert dann sogard Anzeige 2 die Anzeige 1 und 3 weil auf Funktion von Anzeige 2 möglicherweise,
wie gesagt je nachdem wie "dumm" mein Code ist, gewartet wird. Mache ich das in einem Thread
hab ich viel mehr Verwaltungsaufwand. Mache ich das in 3 Threads kann Anzeige 1 und 3 ziemlich egal
sein ob 2 nicht funktioniert, sie arbeiten einfach wie gewünscht. Klar kann ich mir auch den Thread 3 mal
kopieren und hab das gleiche Ergebnis. Damit verliere ich aber die Möglichkeit dynamisch Anzeigen
hinzu zu fügen oder zu entfernen. Klar kann ich mir auch wieder einen Thread so bauen dass ich das kann
aber dann bin ich doch wieder voll bei Single Threading. Hab aufm 64er unter Single Threading in
Assembler Funktionen geschrieben die "gemogeltes" Multi Threading konnten durch tausend (übertrieben)
verschiedene Statusabfragen usw aber das ist irgendwie nicht der Sinn von Multi Threading.

Habe mir jetzt was gebaut wo ich vom Main Thread (oder einem anderen Thread) dem "Anzeigen Thread"
Kommandos schicken kann und auch eine Bestätigung des Kommandos vom Thread kriege. Funkt auch
gut aber ich hab immer noch das Problem dass ich für jede Anzeige nen eigenen Thread brauche.

der andy


    Antwort schreiben


Antworten: