|
Bluesmaster |

Forum-Century
|
 |
Beiträge: 203
|
 |
|
 |
Anmeldedatum: 13.11.11
|
 |
|
 |
Wohnort: Gera
|
 |
|
 |
Version: 2012a
|
 |
|
|
 |
|
Verfasst am: 30.07.2012, 15:58
Titel: überholende events
|
 |
Hallo,
Jetzt habe ich einmal einen richtigen Knochen!
Es geht um Events. Z.B. Mausbewegung. Wird es gefeuert und ruft
seine Callback-Funktion auf, dann fängt die an zu werkeln.
Wenn sie noch nicht fertig ist, bevor das nächste Event reinfliegt,
dann überholt das neue Event quasi das alte (eigene Threads)
So weit so gut. Wenn sich (bei mir) ca 30-40 Events überholt
haben macht Matlab dicht und feuert keine weiteren mehr.
Verstehe ich ja auch noch (Ressourcengründe etc.)
ABER: Selbst wenn die Funktionen dann alle fertig sind bleibt das so!
Es werden keine neue MausMoved events gefeuert. Was soll das? Woran kann das liegen?
- Die WindowButtonMotionFcn ist noch da
- Speicher und CPU ist auch noch Luft
Gruß
Blues
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 31.07.2012, 04:36
Titel: Re: überholende events
|
 |
Hallo Bluesmaster,
In Matlab können sich keine Events überholen. Es gibt auch nur einen Thread, wenn man von den Timer-Objekten absieht.
Deshalb verstehe ich die Beschreibung des Problems nicht.
Die Events werden abgearbeitet, wenn DRAWNOW oder PAUSE es erlaubt.
Woher weißt Du, dass keine MouseMoved-Events auftreten ind wie testest Du, dass "die WindowButtonMotionFcn ist noch da" ist?
Gruß, Jan
|
|
|
Bluesmaster |
Themenstarter

Forum-Century
|
 |
Beiträge: 203
|
 |
|
 |
Anmeldedatum: 13.11.11
|
 |
|
 |
Wohnort: Gera
|
 |
|
 |
Version: 2012a
|
 |
|
|
 |
|
Verfasst am: 31.07.2012, 10:39
Titel:
|
 |
|
 |
|
Hallo Jan, danke für deine Antwort und dein Engagement hier allgemein,
Ich bin nun etwas weiter, und ich muss wirklich ein bisschen einschränken.
Mein kleiner Test bestand aus einer Callbackfunktion sinngemäß so aussah (Testfiles siehe Anhang):
Ausgabe:
Event Nr. 1
Event Nr. 2
Ende 1
Ende 2
Die Simulation von Rechenlast mit pause() war nicht zielführend, das
sehe ich ein. Trotzdem scheinen sich die Events überholt zu haben sonst wäre es so:
Event Nr. 1
Ende 1
Event Nr. 2
Ende 2
Bei 33 Überholvorgängen ist Schluss.
Get(fh, 'WindowButtonMotionFcn') = ok
Fernziel war eine Ablaufverzahnung weil ich eine flüssige GUI brauche,
und Timer zwar unterbrechen, dann aber nicht parallel laufen,
batch() hat 10 sec.(!) Overhead. Ich bin total verzweifelt gibts keinen
funktionierenden Workaround für Multithreading???
Beschreibung: |
|
 Download |
Dateiname: |
testUeberholendeEvents.m |
Dateigröße: |
115 Bytes |
Heruntergeladen: |
304 mal |
Beschreibung: |
|
 Download |
Dateiname: |
testUeberholendeEventsCallback.m |
Dateigröße: |
139 Bytes |
Heruntergeladen: |
297 mal |
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 01.08.2012, 02:58
Titel:
|
 |
Hallo Bluesmaster,
PAUSE erlaubt genau wie DRAWNOW ausdrücklich die Bearbeitung wartender Events. Deshalb ist die Interpretation "überholende Events" irgendwie richtig.
Gruß, Jan
|
|
|
Bluesmaster |
Themenstarter

Forum-Century
|
 |
Beiträge: 203
|
 |
|
 |
Anmeldedatum: 13.11.11
|
 |
|
 |
Wohnort: Gera
|
 |
|
 |
Version: 2012a
|
 |
|
|
 |
|
Verfasst am: 01.08.2012, 12:02
Titel:
|
 |
Irgendwie ist das trotzdem eine Einbahnstraße für meine flüssige GUI,
weil die Events die ich dann weiterverteilen will wieder stecken bleiben.
Ich werde mal eine extra Frage stellen.
Danke trotzdem
Gruß
Blues
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|