![]() |
Re: Threadproblem - sleep(1) braucht ca. 5 ms! Warum ?
Leute, da kommen Messwerte rein und die sollen einigermaßen visualisiert werden. Ich würde die Daten in einen Ringbuffer schreiben und per TTimer z.B. 2-4x pro Sekunde die Werte aus dem Ringbuffer einsammeln und z.B. als Mittelwert darstellen, das reicht doch.
|
Re: Threadproblem - sleep(1) braucht ca. 5 ms! Warum ?
Zitat:
Wenn Windows meint, etwas oberwichtiges machen zu müssen (z.B. Speicher auslagern), dann kann auch ein MMTimer mal nicht regelmässig kommen. Was meinst Du, woher die Ruckler beim CD abspielen herkommen? Da wird nämlich auch der MMTimer genommen. Dafür wurde er sogar erschaffen. Bei meinem ehemaligen Arbeitgeber haben wir auch den MMTimer verwendet, weil der Ablauf alle 20 ms aufgerufen werden sollte. Das hat aber oftmals nicht hingehauen mit den 20 ms. :-( |
Re: Threadproblem - sleep(1) braucht ca. 5 ms! Warum ?
OK, danke für die vielen Ideen, Tipps und Erfahrungsberichte !
z.Zt. läuft es ganz einfach - nach allen paar Schritten habe ich ein sleep(0) eingefügt, da wird der Aufnehmerthread nicht zu langsam und die Datenausgabe ist ganz passabel (das ganze muss heute abend fertig werden...) Nächste Woche werde ich mir mal das Event-Konzept anschauen, dann geht's sicher noch schöner. Die Timer bringen mir ja nur bedingt etwas, da die auch wieder Rechenzeit brauchen. Die Threads werden nicht zeitgesteuert, nur könnten sie alle gleichzeit was tun - es ist also "zu viel" für alle da. Deswegen habe ich Priritäten verwandt, und naja, es geht schon :zwinker: Also, der Datenholen läuft 1.3ms, sortiert & speichert die Daten in ein Array, der Auswerte kopiert das Array und macht damit div. math. Dinge (mittelwert u.a. -> 20-30ms) und dann kommt der graph., des dauert aber 200-1500ms (je nach Menge der Daten). Ich verwende hier TCharts, lasse die Graphen jedesmal neu Zeichnen, da ich mit .yValue[i]-Änderungen im TChart nur eine Art Stern erzeugen konnte. Scheinbar passt da die Nummerierung nicht so ganz... Da wäre auch ein Änderungsansatz :pale: Nochmal Vielen Dank für die Tipps ! |
Re: Threadproblem - sleep(1) braucht ca. 5 ms! Warum ?
Um noch mal auf das TEvent zu kommen. Das ist eine von vielen Möglichkeiten etwas zu synchronisieren. Ob die jetzt tatsächlich etwas für dich wäre steht auf einem ganz anderen Blatt geschrieben. Das kann ich so auch nicht sagen.
Auf meiner Webseite habe ich ein ![]() Das kann man zum Beispiel benutzen wenn man etwas berechnet und auf das Ergebniss warten muss. Zum Beispiel. Aber dafür gibts sicher noch sinvollere Anwednungsbeispiele. |
Re: Threadproblem - sleep(1) braucht ca. 5 ms! Warum ?
|
Re: Threadproblem - sleep(1) braucht ca. 5 ms! Warum ?
Zitat:
Zitat:
1. FastLines-Series nehmen 2. Nur einige Werte Zeichnen (wieso alle? Oder sind Alle wirklich wichtig?) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:42 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz