Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: WaitForSingleObject - GUI nicht ansprechbar

  Alt 2. Nov 2008, 12:25
Zitat von Rer:
...und warte mit WaitForSingleObject auf dessen Beendigung, aber während ich das mache ist mein GUI nicht ansprechbar ...
Irgendwie auch logisch, nicht?

Die Sache in einen Thread auszulagern ist schon eine Möglichkeit, allerdings wirst Du Dir noch Gedanken machen müssen, wie du die Ergebnisse in der GUI darstellst (die VCL ist nicht threadsicher).

Eine andere Möglichkeit wäre, dein 'WaitForSingleObject' mit einem Timeout von z.B. 200ms aufzurufen und dann mit Application.ProcessMessages dafür zu sorgen, das die GUI nicht einfriert. Großartige Aktionen wirst Du aber nicht ohne Weiteres ausführen können (Programm beenden, abbrechen etc.). 'Ohne Weiteres' bedeutet hier, das es schon geht, aber eben nur mit etwas Schmalz.

Delphi-Quellcode:
While WaitForSingleObject (MyHandle, 100) = WAIT_TIMEOUT Do
  Application.ProcessMessages;
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat