Forum: Win32/Win64 API (native code)
Delphi
by shmia,
3. Aug 2007
Warum so spät die Aufgabenbeschreibung ?
Auch dann sollte man die Systemzeit (Oder GetTimerTicks) benutzen, um den Time-Out zu berechnen.
// Pseudocode, soll nur das Prinzip zeigen
maxAntwort := 5.5; // Sekunden
USB_SendMessage(....);
Endtime := Now + maxAntwort / (60.0*60.0*24.0);
while (EndTime > Now) and not Application.Terminated do
begin
if...
Forum: Win32/Win64 API (native code)
Delphi
by shmia,
3. Aug 2007
Dazu benötigt man doch keinen Sleep!!
var
maxAntwort : double;
Endtime : TDateTime;
AntwortVorhanden : boolean; // die Variable muss im private Abschnitt des Form sein
begin
AntwortVorhanden := False;
maxAntwort := 5.5; // Sekunden
StelleFrage; // Frage auf Bildschirm klopfen
Forum: Win32/Win64 API (native code)
Delphi
by shmia,
2. Aug 2007
Ein Sleep(1) braucht immer mehr als 1 ms, da ja im Hintergrund ein Taskwechsel stattfindet.
Es wird min. die Robin-round time slice "verbraten".
Unter 50ms muss man mit prozentual grossen Abweichungen rechnen.
Bei einem Sleep(1000) muss man mit min. 50ms Abweichung rechnen.