AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

WaitForSingleObject

Ein Thema von ONeill · begonnen am 2. Apr 2012 · letzter Beitrag vom 5. Apr 2012
Antwort Antwort
ONeill

Registriert seit: 17. Nov 2011
28 Beiträge
 
#1

AW: WaitForSingleObject

  Alt 2. Apr 2012, 21:09
Jap, die läuft ja auch vor meinen Augen ohne Probleme weiter, so wie es sein soll. Allerdings wird eben der Prozess nicht beendet.

Aber ich hatte nun wirklich Tomaten auf den Augen. Ich habe es nun wie folgt gelöst:
Code:
repeat
          WaitHandle := WaitForSingleObject(procInfo.hProcess, 2000);
          Application.ProcessMessages;
          closed := closed+1;
        until application.terminated or (WaitHandle <> WAIT_TIMEOUT) or (closed = 10);
        if closed = 10 then
        begin
          killtask('fastboot.exe');
          killtask('adb.exe');
        end
Also sprich: ich habe einfach einen Zähler eingebaut, der sich erhöht. Wird dort eine gewisse Höhe erreicht, wird der Prozess einfach beendet.

Ist das so auch ressourcenschonend?
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.683 Beiträge
 
Delphi 5 Professional
 
#2

AW: WaitForSingleObject

  Alt 2. Apr 2012, 21:14
Warum benutzt du zum Beenden der Prozesse nicht gleich das eh schon vorhandene Handle in procInfo.hProcess ? Einen Prozess mit seinem Namen zu töten, ist eine ganz dumme Idee, wenn sich noch andere gleichnamige Prozesse auf dem System tummeln...

MfG Dalai
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

AW: WaitForSingleObject

  Alt 2. Apr 2012, 21:17
Ich glaube, das wird langsam zum Running Gag. Auch 2.000 Millisekunden sind keine 20 Sekunden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#4

AW: WaitForSingleObject

  Alt 2. Apr 2012, 21:21
@Luckie: 10 * 2000

ressourcenschonend ja, aber muß es denn gleich in einem Mord (Kill) enden?
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
ONeill

Registriert seit: 17. Nov 2011
28 Beiträge
 
#5

AW: WaitForSingleObject

  Alt 4. Apr 2012, 21:05
Das ist kein Gag leute, das ist ein wirkliches Problem, schade das es anders rüberkommt. Zumal die Zeit nicht wirklich relevant für das Problem ist!

@himitsu:
Leider ja, da der User an sich das CMD-Fenster nicht sehen soll. Sollte der Prozess nicht nach einer bestimmten Zeit beendet werden, so sieht der User die ganze Zeit nur ein einfaches "Bitte warten...".
Und da man als normaler User da nicht ewig warten will, wird dann praktisch nach der Zeit ein Errorform angezeigt
Mal gleich ne andere Frage, auch wenn es nicht hierher gehört:
Ich habe mir eine config.ini geschrieben und dort einen wert imgfile gesetzt. Der sollte entweder 1 oder 0 sein.
Nun lese ich den Wert aus und das Programm soll je nachdem wie der Wert ist eine Abfolge von Befehlen ausführen oder eine andere:
Code:
if ini.ReadInteger('functions', 'imgfile', 0) = 1 then
  begin
    //tu die Abfolge
  end
  else
  begin
    //tu das andere
  end;
Eigentlich recht simpel. Allerdings habe ich das Problem, das der erste Programmablauf ausgeführt wird, wenn der Wert imgfile eine 1 ist, aber das Programm gar nichts mehr tut, wenn es keine 1 ist. Also wirklich gar nichts mehr. Nach dem Ausführen des Befehls davor, der immer gleich sein soll, wird das Programm an sich noch angezeigt, also keine exception oder ähnliches, allerdings wird keine Programmabfolge mehr ausgeführt, weder das in der if clause, noch in der else clause, noch der Programmcode nach danach.

Kann sich das einer erklären, oder hat einer einen Vorschlag, wie ich dem "Fehler" auf den Grund gehen kann?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

AW: WaitForSingleObject

  Alt 4. Apr 2012, 21:22
Mal gleich ne andere Frage, auch wenn es nicht hierher gehört:
Dann mach dafür bitte auch einen neuen Thread auf.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.340 Beiträge
 
Delphi 12 Athens
 
#7

AW: WaitForSingleObject

  Alt 4. Apr 2012, 21:58
Dann bau doch einen Abbrechenbutton in deine Warten-Form?


Zitat:
Warte auf das Beenden des Programms "xyz".

Drücken sie auf Abrechen, um ohne zu warten fortzufahren.
Aber ich seh keinen wirklichen Grund unbedingt ein Programm zu erschießen.
Kann man es denn nicht laufen lassen? Vielleicht wird es ja gleich fertig und wenn nicht, dann hat der Benutzer immernoch Taskmanager und Co.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
ONeill

Registriert seit: 17. Nov 2011
28 Beiträge
 
#8

AW: WaitForSingleObject

  Alt 5. Apr 2012, 05:52
im normalfall stimme ich dir voll und ganz zu.
allerdings ist die erfolgreiche ausführung des ersten befehls über fastboot essentiell für den erfolg des weiteren programmablaufes.
die ausführung des ersten fastboot befehls dauert nie länger als 3 sekunden, da fastboot nur den befehl an den bootloader des am usb port angeschlossenen herätes sendet und eine antwort noch vor dem ausführen des befehls im gerät gegeben werden muss. grund ist, weil der befehl ein neustart ds gerätes ausführt.

wird der erste fastbootbefehl nicht erfolgreich aisgeführt, was bei mehr als 10 sekunden 100-prozentig der fall ist, hilft auch kein abbruchbutton, da die weiteren befehle auch nicht funktionieren würden, dr user also abbrechen ohne ende klicken müsste.
  Mit Zitat antworten Zitat
Antwort Antwort


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:44 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-2025 by Thomas Breitkreuz