Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Threadproblem - sleep(1) braucht ca. 5 ms! Warum ? (https://www.delphipraxis.net/117449-threadproblem-sleep-1-braucht-ca-5-ms-warum.html)

alzaimar 18. Jul 2008 12:39

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.

RavenIV 18. Jul 2008 12:39

Re: Threadproblem - sleep(1) braucht ca. 5 ms! Warum ?
 
Zitat:

Zitat von negaH
MMTimer, Multi Media Timer verwenden, der muß exakt sein. Das bedeutet aber auch das deine MMTimer Callback Funktion gewissen kritischen Anforderungen genügen muß.

Auch der MMTimer muss nicht immer genau sein.
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. :-(

Andy386 18. Jul 2008 15:02

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 !

Lossy eX 18. Jul 2008 17:46

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 Multithreading Tutorial. In dem erwähne ich die relativ weit unten mal.

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.

hathor 18. Jul 2008 23:29

Re: Threadproblem - sleep(1) braucht ca. 5 ms! Warum ?
 
Guckst Du hier:

http://www.delphi-forum.de/viewtopic.php?t=77746

alzaimar 19. Jul 2008 07:53

Re: Threadproblem - sleep(1) braucht ca. 5 ms! Warum ?
 
Zitat:

Zitat von Andy386
Die Timer bringen mir ja nur bedingt etwas, da die auch wieder Rechenzeit brauchen.

Kannst Du mir das etwas genauer erklären?[/quote]

Zitat:

Zitat von Andy386
... und dann kommt der graph., des dauert aber 200-1500ms ...

Dann hast du (vielleicht) etwas falsch gemacht:
1. FastLines-Series nehmen
2. Nur einige Werte Zeichnen (wieso alle? Oder sind Alle wirklich wichtig?)


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:54 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz