Seite 2 von 2

Re: Procedure als eigenen Prozess parallel ausführen

Verfasst: 28.07.2013 10:39
von elko68
Hallo KeyKon,

großes DANKE !!! - dass ist ein genialer Hinweis :allright:
Ich werde versuchen dass mal umzustricken - es sind ja vieleicht etwa 5% vom Projekt realisiert - ist halt ein Unterschied ob man einen ATMega oder einen PC vor sich hat - muss mich an die neuen Denkstrukturen erst gewöhnen.

... werde dann die Portkommunikation in eine schleife packen und bei bedarf die Variablen mit neuen Infos ver- und entsorgen - mal sehen ob ich dass heute hinbekomme 8)

Gruß Frank

Re: Procedure als eigenen Prozess parallel ausführen

Verfasst: 28.07.2013 14:02
von heinz
Hallo

Ich würde folgende Vorgehensweise vorschlagen:
- Keine Threads sondern Eventbasiert
- Eine Linked-List verwenden, in der die Sende- und Empfangskomandos eingetragen werden
- In der Eventloop das älteste Komando in der Linked-List ausführen
- Einfügen der periodischen Busabfragen mit Windowstimer in die Linked-List

Re: Procedure als eigenen Prozess parallel ausführen

Verfasst: 28.07.2013 14:53
von elko68
Hallo,

Portkommunikation in eine schleife (Thread) packen und bei bedarf die Variablen mit neuen Infos ver- und entsorgen hat nicht den Erfolg gebracht.
Ich habe nun die Variante mit einem WindowsTimer verfeinert - der schaut Zyklisch nach ob was zu tun ist - das klappt sehr gut.

Gruß Frank

Re: Procedure als eigenen Prozess parallel ausführen

Verfasst: 28.07.2013 15:53
von NicTheQuick
Wenn man sauber mit Threads kommunizieren will, bleibt einem eh nichts anderes übrig als Mutex und Semaphoren korrekt einzusetzen. Da steckt schon ein bisschen mehr dahinter als Werte in Variablen auszutauschen. In Zeiten der Multicores haben Variablen in verschiedenen Threads nämlich nicht zwangsweise den selben Wert, weil jeder Core seinen eigenen Cache hat. An diesen Stellen sind dann Mutexe wichtig.