![]() |
DLL pausieren lassen ohne Prozessorbelastung?
Hallo,
ich habe eine DLL geschrieben die drei Funktionen exportiert(openusb,closeusb,setdevice) Diese DLL wird benutzt um über eine USB Schnittstelle einen MicroController anzusprechen. Die DLL funktioniert auch einwandfrei, aber ich habe einen kleinen Schönheitsfehler. Wenn setdevice aufgerufen wird, wird ein Befehl an den µC abgesetzt, 1000 mS gewartet und danach ein weiterer Befehl abgesetzt. Während dieser Zeit darf kein weiterer Befehl akzeptiert werden. Die 1000 mS habe ich mit der Delay Funktion von Luckie aus der Code-Library realisiert. Wie gesagt, eigentlich funktioniert alles wie ich es möchte, allerdings steigt die Prozessorlast während des Delays auf über 80 Prozent. Da ich im Hauptprogramm während dieser Zeit weitere recht umfangreiche Berechnungen durchführen muss, ist das nicht so optimal. Gibt es eine einfache Möglichkeit das zu ändern? Würde mich über ein paar Tips freuen. Gruß Frank |
Re: DLL pausieren lassen ohne Prozessorbelastung?
wird Setdevice und das nachfolgende Delay in 'nem Thread ausgeführt?
wenn ja, dann nimm einfach nur Sleep, denn Delay führt ja einiges intern aus um die Befehlsverarbeitung aufrecht zu erhalten und wenn du 'nen Thrad nutzt, dann hat der andere Thread ja auch so schon seine Bearbeitungszeit und das Delay ist garnicht nötig. |
Re: DLL pausieren lassen ohne Prozessorbelastung?
In der Codelibrary ist doch auch eine ressourcenschonendere Variante von delay.
![]() |
Re: DLL pausieren lassen ohne Prozessorbelastung?
Hallo,
Setdevice wird nicht in einem Thread ausgeführt. Das scheint aber die Lösung zu sein.Die ressourcenschonendere Variante funktioniert auch nicht viel besser als die von Luckie. Die Prozessorauslastung ist nach wie vor sehr hoch. Ich werde es mal mit einem Thread probieren. Gruß Frank |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21: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