![]() |
AW: Schleife beschleunigen sinnvoll?
@EWeis
Was macht den Thread.Sleep(0) ???? haste das mal probiert? Sieht komisch aus hab ich aber häufiger schon gesehn und verbrät auch etwas Zeit. Gruß newbe |
AW: Schleife beschleunigen sinnvoll?
Zitat:
Ist das gleiche als wenn ich kein Sleep verwende. Wenn ich mein Plugin für Winamp über meinen Wrapper mit einer Delphi Anwendung über Timer laufen lasse hab ich 7% CPU In .NET im Thread 45% (ohne Sleep) das kann es nicht sein. das sind halt die probleme wenn man mit while do und konsorte arbeitet. gruss |
AW: Schleife beschleunigen sinnvoll?
Zitat:
Zitat:
Bisher hast du nur geschrieben, dass die CPU Auslastung hochgeht, was aber ja erst einmal nichts damit zu tun hat andere Prozesse zu behindern. Zitat:
|
AW: Schleife beschleunigen sinnvoll?
Also ich würde auch sagen, dass NamenLozer und Furtbichler schon Recht damit haben könnten, dass das Problem tatsächlich eher anders gelöst werden sollte. Vielleicht wäre es sinnvoller noch genauer (Code?) zu beschreiben was dieser Thread macht.
Ansonten probier mal 0 als Paramter. Sleep(0) führt lediglich einen Kontextwechsel durch. Aber ich denke nicht dass es etwas ändern wird. Roter Kasten: Okay, hast du wohl schon. Sleep(0) bewirkt eigentlich aber nicht das gleiche wie gar kein Sleep. Üblicherweise verursacht es einen Kontextwechsel des Prozess-Schedulers. Liebe Grüße, Valentin |
AW: Schleife beschleunigen sinnvoll?
Zitat:
Wenn ich Mediaportal im fenstermodus starte und anschließend mit der maus auf das Caption der Anwendung klicke und diese Festhalte dann läuft die Vis in Realzeit und die CPU-Last geht runter. gruss |
AW: Schleife beschleunigen sinnvoll?
Ich kenne auch im Wesentlichen nur Sleep(1) um Threads etwas CPU-freundlicher zu gestalten, wenn man sonst keine Events hat, auf die man warten könnte. Hast du wirklich keine Möglichkeit den VSync abzuwarten? Das wäre gerade für einen Render-Thread einfach die Lösung. Schneller zeichnen als der Monitor das Bild malt bringt einfach nichts, ausser Tearing-Effekte, die eigentlich keiner so wirklich mag.
|
AW: Schleife beschleunigen sinnvoll?
Zitat:
Mein problem ist mit dem Sleep funktioniert es eigentlich.. Aber! Die volle Framrate bekomme ich aber erst wenn ich das Vollbild in den Window mode schalte dann mit der Maus auf das Caption oder Rahmen der Masterform drücke und festhalte. Ich hab alles schon versucht mit form.Activate(); usw.. Es scheint als wenn das aufgesetzte Usercontrol in dem sich das VisualisierungsWindow des Plugins befindet der Masterform den Focus nimmt oder aber einige MEssagen nicht durchläßt. sorry salop gesagt ;) das ist aber auch eine scheisse warum nimmt man für ein Overlay Window ein UC. gruss |
AW: Schleife beschleunigen sinnvoll?
Hab das problem jetzt gelößt.
Ich leite die Messagen der Plugins nicht mehr über das Handle der Anwendung um sondern erstelle dafür intern ein eigenes Window wo das plugin dann nur noch mit meiner DLL kommuniziert. Dafür hab ich meinen Record erweitert mit einem Flag über das bestimmt wird ob man das möchte oder nicht. Normalerweise funktioniert das ohne das man es setzen muss aber wie hier im Fall ist es von nöten. Das Sleep in kombination mit dem erstellten Window funktioniert prächtig. gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:53 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