AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Wie stelle ich sicher dass ich nichts von VCL verwende
Thema durchsuchen
Ansicht
Themen-Optionen

Wie stelle ich sicher dass ich nichts von VCL verwende

Ein Thema von Viktorii · begonnen am 31. Okt 2008 · letzter Beitrag vom 5. Nov 2008
 
Viktorii

Registriert seit: 19. Jul 2007
358 Beiträge
 
#7

Re: Wie stelle ich sicher dass ich nichts von VCL verwende

  Alt 31. Okt 2008, 09:19
Der Grund warum ich Application.ProcessMessages ist folgender: Ich habe eine DLL geschrieben, welche von anderen Programmieren benutzt werden soll. Die Funktionen sollen auch in einem Thread aufrufbar sein. Dazu habe ich hier schon mal gepostet.

Nun wird eine Funktion dazu verwendet einen DSP per USB zu pollen. Ist unschön, aber lässt sich durch den Anwendungsfall nicht ändern. Nun kann es sein, dass der DSP (aus welchen Gründen auch immer) rebootet. Das heißt er ist nach einigen Sekunden wieder da. Wenn dies passiert, muss ich in der Funktion solange warten (ich darf nicht vorher aus der Funktion zurückkehren) bis er wieder da ist. Dazu habe ich mir ein 'Notifyer Objekt' gemacht. Ich reagiere auf die entsprechenden WM, prüfe dann auf VendorID usw. Nun möchte den Notifyer alle 100 ms abfragen ob sich was getan hat. Ich habe also erst sleep(100) gemacht und dann nachgeschaut. Das funktioniert allerdins nicht. Sleep scheint wohl die ganze Anwendung komplett lahm legt und somit hat mein Notifyer die WM wohl nicht mitbekommen. Dann habe ich mir als Alternative zu sleep diese Lösung überlegt:

Delphi-Quellcode:
        Sleeper := 0;
        while Sleeper < 100 do
        begin
          Sleep(1);
          inc(Sleeper);
          Application.ProcessMessages;
        end;
So funktioniert es zwar, aber wenn die Funktion in einem Thread aufgerufen wird, wird somit ja auch Application.ProcessMessages in einem Thread aufgerufen. Kann ich denn irgendwie dafür sorgen dass die mein Notifyer mit einer anderen Lösung als der oben Genannten weiterarbeiten kann?
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:36 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 by Thomas Breitkreuz