Einzelnen Beitrag anzeigen

C.Schoch

Registriert seit: 2. Jan 2006
Ort: Wüstenrot
235 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: msgWaitforMultipleObjects verzögert auf Dual Core

  Alt 9. Dez 2006, 12:59
Es scheint so als ob das Programm est nach erhalt einer Message WAIT_OBJECT_0 zurückgiebt.
Deshalb hab ich das jetzt mit WaitforMultipleObjects gelöst und zwar so.
Delphi-Quellcode:
repeat
  // Auf Threads warten
  dwWaitResult := WaitforMultipleObjects(length(ThreadArray), @ThreadArray, true, 100);
  if dwWaitResult <> WAIT_OBJECT_0 then
  begin
    StatusbarUpdate; // Statusbar updaten / Progress berechnen
    pmShowErrors.Enabled := bError and (tvSourceDestination.FocusedNode <> nil);
    mmShowErrors.Enabled := pmShowErrors.Enabled;
    Application.ProcessMessages; // GUI aktualisieren
  end;
until dwWaitResult = WAIT_OBJECT_0; // keinen Threads mehr zum warten
Aber warum die erste Funktion auf dem Singlecore tadellos funktioniert ist mir schleierhaft.
Tschau Christian
Das System hofft auf Besserung
[Siemens]
  Mit Zitat antworten Zitat