INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Schalter deaktivieren führt zu race condition, wie umgeht man das?



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

11.05.2021, 09:48
Beitrag #3

TpunktN Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 217
Registriert seit: Jul 2011

2021
2011
EN

70***
Deutschland
RE: Schalter deaktivieren führt zu race condition, wie umgeht man das?
Hallo Gerd,

danke für die Kritik.
(11.05.2021 07:48 )GerdW schrieb:  
Zitat:Wo ich mir eine race condition einfange und es sein kann, das ich den Schalter drücke und er wieder rausspringt.
Deine Beschreibung kann man nur anhand eines Bildes eines Teils deines Codes nur schlecht nachvollziehen, insbesondere das "Drücken" und "Rausspringen"…
Mir ging es nur eher generell, ich bin sicher nicht der Einzige der solche Fälle hat und überlege mir jedesmal neu um dann festzustellen, so kann das nicht richtig sein. Ich habe es hier jetzt gelöst, in dem ich es in das erste Case nach dem Umschalten gepackt habe, welches die Auswahl des Zählers bestätigt und entsprechend schaltet.

Dennoch hier: Der zweite Motor ist eine Option und kann zusätzlich eingeschalten werden (falsch formuliert in meinem ersten Beitrag). Mit "rausspringen" ist die race condition gemeint, beim Schalten des Schalters ist der state schon abgefragt und wird dann zurückgesetzt, obwohl die Bedingung erfüllt ist. Dies wollte ich mit der Case abfangen, indem ich nur bei aktivem Schalter diesen evtl. zurücksetze (FALSE-Case ist leer).

Zitat:Zum Bild:
- Warum so viele lokale Variablen? (Gerade beim Thema Race-Conditions!?)
Altes Programm, das von mir übernommen wurde, über 5 Bildschirme voller Code Undecided Und der wurde schon von mir zusammengestutzt ... Ich arbeite viel mit lokalen Variablen (ich weiß, ist schlecht), weil das in den alten Programmen so gemacht wurde und ich das damit so gelernt habe. Neue Programme von mir haben fast gar keine mehr oder zumindest keine Race Conditions.

Zitat:- Du vergleichst diesen "Zähler 1" einmal "<>3" und einmal "==3"!? Warum nicht nur ein Vergleich? Warum eine Case-Struktur daran knüpfen und parallel ein Select? Warum nicht beide Auswertungen dieser einen Bedingung in nur einer Case-Struktur?
Durch das ganze rumprobieren ist das entstanden, haste recht, habe ich behoben. (Bei FALSE soll der Schalter nicht geändert werden, der Case ist leer)

Zitat:Warum nicht eine gemeinsame Propertynode, in der sowohl der "value" als auch das "Disabled" gesetzt werden?
Auf jedenfall mal ein guter Tipp, es sind die kleinen Dinge, die einen Code besser machen.

Zitat:- Race-Condition: du schreibst in eine lokale Variable von "Motor2" innerhalb der Case-Struktur, liest aber parallel dazu aus dem Terminal von Motor2!
Ja, das will ich doch gerade richtig machen und bin deswegen hier. Um das ganze mal runter zu brechen, mein Testversuch war so:
   
Der 2te Case ist leer. Wie würde man das richtig machen? Mit oder ohne Bedienelement (de-)aktivieren.


Grüße Timo

Justieren ist dem Gerät sagen was es anzeigen soll, kalibrieren ist die Kontrolle dieser Anzeige. Eichen ist ein längerer Prüfprozess und darf nur das Eichamt!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Nachrichten in diesem Thema
RE: Schalter deaktivieren führt zu race condition, wie umgeht man das? - TpunktN - 11.05.2021 09:48

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Änderung von großen Cluster (Type Def.) führt zu out of Memory exeption spacz 8 6.573 28.10.2019 09:01
Letzter Beitrag: spacz
  Bildschirmschoner deaktivieren Snoop2000 10 13.293 18.06.2019 15:50
Letzter Beitrag: Ratio
Question (viele) Bedienelemente deaktivieren / aktivieren F.Bi 3 5.299 16.08.2018 12:59
Letzter Beitrag: GerdW
  Case-Struktur führt True und False aus (Ereignisschleife) HIMI 11 9.070 24.08.2017 13:04
Letzter Beitrag: HIMI
  Schalter an/aus Tobolf 1 3.966 27.01.2017 11:00
Letzter Beitrag: GerdW
  Laufzeitmenü deaktivieren P.Pfarherr 8 9.570 19.10.2016 14:09
Letzter Beitrag: C.Maier

Gehe zu: