Moin Leute,
ich habe eine Anlage, bei der bewegungsgetriggert mit 3 Kameras je nn Bilder aufgenommen und ausgewertet werden.
Das ganze läuft in einem Thread, um die GUI nicht zu blockieren.
Die Auswertung ist in 2 Teile gesplittet:
Bis ca. 60 Zyklen käuft das ganze flott durch.
Nach ca. 60 Zyklen wird das ganze drastisch langsamer.
Folgende mögliche Ursachen sind untersucht und verworfen:
Es passiert nicht, wenn bei laufendem Motor und simulierter Bildverarbeitung kein
Dies alles passiert innerhalb des oben genannten Threads.
Kann es sein, es da nicht aufgeklärte Thread-Task-Parallel-Effekte gibt?
Danke für Eure Ideen.
ich habe eine Anlage, bei der bewegungsgetriggert mit 3 Kameras je nn Bilder aufgenommen und ausgewertet werden.
Das ganze läuft in einem Thread, um die GUI nicht zu blockieren.
Die Auswertung ist in 2 Teile gesplittet:
- während der Bewegung in je einer
Task
pro Kamera und Bild, - nach Beendigung der Bewegung mit einem
Parallel.For
pro Kamera.
Bis ca. 60 Zyklen käuft das ganze flott durch.
Nach ca. 60 Zyklen wird das ganze drastisch langsamer.
Folgende mögliche Ursachen sind untersucht und verworfen:
- (beliebige) Aufteilung der Auswertung während / nach der Bewegung / Bildaufnahme,
- Memoryleaks - Kontrolle TaskManager,
- unmanaged Ressourcen - spezieller Monitor,
- Überschneidung von Tasks - Exception, Log,
- die Motorbewegung - passiert auch bei simuliertem Motor,
- die Bildverarbeitung - passiert auch bei simulierter Bildverarbeitung.
Es passiert nicht, wenn bei laufendem Motor und simulierter Bildverarbeitung kein
Task
gestartet wird AndAlso
kein Parallel.For
aufgerufen wird.Dies alles passiert innerhalb des oben genannten Threads.
Kann es sein, es da nicht aufgeklärte Thread-Task-Parallel-Effekte gibt?
Danke für Eure Ideen.
Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert!
Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch
Ein guter .NET-Snippetkonverter (der ist verfügbar).
Programmierfragen über PN / Konversation werden ignoriert!