![]() |
Erhöhen der Maus-/Tastaturpriorität
Hallo!
ich hab mir ein Programm geschrieben, dass einen Thread mit der Priorität 31 abspaltet. (Diese hohe Priorität ist für die Funktion des Programmes unablässlich) Leider muss der Benutzer über Tastatur oder Maus den Nebenthread beenden können, was natürlich bei dieser hohen Priorität nicht klappt. (Hab mich quasi selber ausgesperrt) Kann ich dafür nicht die Priorität der Tastatur/Maus auch auf 31 setzen, um ein beenden zu ermöglichen? Gruß, Borti |
Re: Erhöhen der Maus-/Tastaturpriorität
Moin!
Hä? Dann hast du das mit den Prioritäten nicht ganz richtig gemacht wenn du sowas brauchst. Wenn dein Programm eine solche hohe Priorität braucht, dann kennzeichne es Windows gegenüber als CBT Task und du erhälst mehr Prozesszeit und eine höhere Priorität und ander Vorzüge. Ansonsten würde ich sagen das dein Weg über den Thread mit einer solch hohen Priorität der falsche Weg zur Lösung deines Grundproblems ist... MfG Muetze1 |
Re: Erhöhen der Maus-/Tastaturpriorität
Was ist bitte ein CBT Task?
("Computer based training" nach google :gruebel:) Danke, Borti |
Re: Erhöhen der Maus-/Tastaturpriorität
Moin!
CBT hast du ja nun schon geklärt, im deutschen auch als CUA (computerunterstützte Ausbildung) bekannt. Durch eine spezielle Bekanntmachung gegenüber Windows kannst du ein Programm als CBT kennzeichnen und dann erhält dieses Programm mehr Möglichkeiten und vor allem auch grundlegend mehr Prioritäten. Ein CBT Programm kann in das System eingreifen bzw. sich alles mögliche abfangen, andere Prozesse begrenzen/beschneiden. Damit hättest du eine grössere Wahrscheinlichkeit das dein Thread besser läuft ohne eine solch hohe Priorität und gleichem Ergebnis. Grundlegend solltest du aber eher dazu übergehen eine grundlegend andere Lösung zu finden, weil einen Thread auf Realtime laufen zu lassen ist mehr als "krank" und zeigt eigentlich recht eindeutig das die Problemlösung falsch angegangen wurde. Das sieht für mich schon fast wie ein ständiges polling aus und da sollte man dringen mal schauen ob es nicht auch eine trigger gesteuerte Möglichkeit gibt. MfG Muetze1 |
Re: Erhöhen der Maus-/Tastaturpriorität
richtig,
der Thread pollt mir den LPT-Port und es darf zwischen zwei Abfragen höchstens 1msec. liegen. Wo krieg ich den Informationen über diese CBT-Programme? (bei google krieg ich nur Vorschläge über Didaktik) Und wie kann ich mit Delphi mein Programm gegenüber Windows als CBT kennzeichen? Danke, Borti |
Re: Erhöhen der Maus-/Tastaturpriorität
Zitat:
aber man kann den LPT-Port abhören, ohne die CPU zu 99,9% auszulasten! |
Re: Erhöhen der Maus-/Tastaturpriorität
Auf ein Abtastintevall von 1msec kommt man mit Windows doch eh nicht, oder!? :gruebel: Weil den Scheduler wirst du nicht platt kriegen, und das ist auch gut so ;).
Da wäre imho ein Echtzeitsystem geeigneter. |
Re: Erhöhen der Maus-/Tastaturpriorität
Ich benutze QueryPerformanceTimer. Im Schnitt hab ich eine zeit von 20nanosec. zwischen zwwei Abfragen. Die 100% CPU auslastung kommt halt daher, dass der thread eine Schleife ist, die über eine tastatureingabe beendet wird.
Gruß, Borti |
Re: Erhöhen der Maus-/Tastaturpriorität
Wieso mußt du nen LPT Port in einem Intervall von 1ms abfragen? Die Übertragungszeit von nem LPT Port ist so gering, dass IMHO der Status an dem Port sich eh nur alle paar Millisekunden ändert.
Da reicht es auch aus, wenn der Port aller 10ms oder noch mehr abgefragt wird, weil du eh nicht schneller auf ein Ereigniss reagieren kannst als die Daten reinkommen. |
Re: Erhöhen der Maus-/Tastaturpriorität
an dem LPT-Port hängt eine von mir selbst entwickelte hardware, die eine auflösung von 1msec braucht.
Das der LPT-Port hinterherkommt denk ich schon, wenn ich mir die Datenblätter der verwendeten TTL-ICs anschaue. (Aber wir driften vom Thema ab! Ich versuch das immer noch mit der tastaturpriorität zu regeln) Gruß, Borti |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:10 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