Einzelnen Beitrag anzeigen

bluescreen25

Registriert seit: 27. Nov 2005
Ort: Geldern
229 Beiträge
 
Delphi 7 Enterprise
 
#1

Optimierung der Prioritäten

  Alt 5. Jul 2007, 12:50
wenn ich aus der meiner MP3-Anwendung heraus ein externes Programm starte, kommt es genau beim Start zu hohen CPU-Auslastungen, so das ich kurze Aussetzer bei der Wiedergabe von MP3 habe.

Ich habe mich mal in Thread und Process-Prioritäten eingelesen und auch soweit Resultate, nur wie macht man es richtig bzw optimiert ?

Ich möchte die externe Anwendung soweit wie möglich in der CPU-Auslastung gebremst starten, sodas es die Hauptanwendung nicht stört.

Hier mal mein Code dazu:

Code:
     var
      app,appWithPath,WndClass: String;
      ProcID,ThreadID: Cardinal;
      AppWindow,Wnd : HWnd;


    begin
      ....
      ProcID := 0;                        
      AppWindow := 0;
      RunProcess(appWithPath, SW_SHOW, FALSE, @ProcID);
      SetProcessPriorty(ProcID,IDLE_PRIORITY_CLASS); //  zum testen !
      SetThreadPriority(GetCurrentThreadId,THREAD_PRIORITY_IDLE);
      repeat
        AppWindow := GetWndHandle(ProcID);
        application.ProcessMessages;    
        sleep(500);                      
      until (AppWindow <> 0) or stopSearch; //stopSearch durch Timer, falls gar nicht findet
      if AppWindow <> 0 then
         begin
           Sleep(500);
           SetThreadPriority(GetCurrentThreadId,THREAD_PRIORITY_NORMAL);
           SetProcessPriorty(ProcID,NORMAL_PRIORITY_CLASS); // zum testen !
         end;
       ....
...und ich dachte, Delphi ist ein Programmgenerator mit nur einem Button......tzzz
  Mit Zitat antworten Zitat