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 

BenutzerEvent löst timeout-Case aus



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!

02.07.2013, 19:00 (Dieser Beitrag wurde zuletzt bearbeitet: 02.07.2013 19:06 von Lucki.)
Beitrag #17

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: BenutzerEvent löst timeout-Case aus
(02.07.2013 18:21 )Holy schrieb:  Das ist nicht korrekt. Jede Registrierung stellt eine eigene Queue dar und erhält jeden gefeuerten Event für sich. Somit kannst du einen Event feuern und alle Stellen die diesen Event separat registriert haben erhalten diesen auch. Problem an Hassenfuss seinem Beispiel war die Wiederverwendung einer Registrierung und somit war das Element in der Eventqueue jeweils schon verarbeitet.
Tatsache ist zunächst, dass das VI funktioniert, und zwar zuverlässig. Es ist alles richtig was Du sagts, aber wo soll genau die Stelle in meinem VI sein, in der etwas "nicht korrekt" ist?

Ich bringe die Vis noch in einer verbesserten Version. Der Mangel war die fehlende Skalierbarkeit. D.h. das Vi funktionierte mit den 2 SubVIs, aber bei Erweiterung auf N SubVIs, die ja alle geschlossen werden müssen, hätte man die Ereignisstrukturen jedes Mal anpassen müssen.

Daaillierte Beschreibung des Stop-Vorganges:
Bei allen VIs (MainVI und beliebige viele SubVIs) gibt es den Ereigniscase „ Stopp“ für den lokalen StopKnopf. Dieser beendet das Vi, aber nicht ohne vorher noch das benutzerdefinierte Ereignis „StopExtern“ zu generien:
   
.
Diese benutzerdfiniete Ereigns kann in allen noch geöffneten VIs gleichermaßen verarbeitet werden. Es ist Zufall, welches dieser VIs das Ereignis annimmt und sich dabei ebenfalls schließt.
Die restlichen VIs blieben aber geöffnet – so funktionierts also nicht.
Die Lösung des Problems: Bei der Eventbehandlung „StoppExtern“ wird das VI beendet, vorher aber das Event „StoppExtern“ erneut generiert:
   
Das verursacht dann das Schließen eines weiteren, zufällig ausgewählten VIs.
Wenn das letzte VI geschlossen wird, erzeugt das zwar immmer noch einen neues Event „StoppExtern“, das geht aber dann ins Leere, weil die gesamte Aplikation geschlossen ist.


Angehängte Datei(en)
10.0 .vi  Main1.vi (Größe: 8,05 KB / Downloads: 124)

10.0 .vi  Sub1.vi (Größe: 8,08 KB / Downloads: 108)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
RE: BenutzerEvent löst timeout-Case aus - Lucki - 02.07.2013 19:00

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  letztes Element wieder fokusieren nach Fenster lost focus TpunktN 2 2.542 28.11.2022 11:31
Letzter Beitrag: TpunktN
  Case-Struktur: Angegebener Case nicht vorhanden braendy 10 5.627 02.02.2021 15:05
Letzter Beitrag: Lucki
  VISA Timeout LP 8 7.652 10.10.2019 09:05
Letzter Beitrag: jahu
  Event Case Ignoriert Tastendruck wenn in Gegenwart eines anderen "Leeren" Event Case Ksanto 8 7.471 23.10.2017 09:08
Letzter Beitrag: Ksanto
  CLD Prüfungsängste, Timeout HasteMalNeMark 7 5.424 29.03.2016 16:01
Letzter Beitrag: rolfk
  Event-Struktur: Timeout während der Eventabarbeitung kwakz 4 4.985 04.09.2015 17:21
Letzter Beitrag: Lucki

Gehe zu: