Ich schieße, um etwas Arbeit zu tun, und eine der Voraussetzungen ist, den Prozess zu beenden, wenn er aufgehängt ist.
Mein erster Gedanke war Process.Responding, aber ich bin mir nicht sicher, was es wirklich bedeutet.
Ist es dasselbe, wenn Win7 dem Fenstertitel einer Anwendung einen (Not Responding)
hinzufügt? Auf meinem Computer passiert dies sogar, wenn MS Word versucht, eine Datei von einer wirklich langsamen Remote-Freigabe zu öffnen.
Was sind die Bedingungen für ein Process.Responding falsch sein?
Unter der Haube, wenn Sie die Eigenschaft Process.Responding
überprüfen, die Windows-Funktion SendMessageTimeout
wird aufgerufen.
Diese Funktion sendet grundsätzlich eine Nachricht an das Hauptfenster eines anderen Prozesses und prüft, ob das Fenster die Nachricht innerhalb eines Timeouts von 5000 ms akzeptiert (daher hat das Überprüfen dieser Eigenschaft in einer Konsolenanwendung keine Auswirkung).
Wenn Sie ein benutzerdefiniertes Timeout verwenden möchten, können Sie auch die Funktion SendMessageTimeout
selbst aufrufen:
Responding
bedeutet, dass das Anwendungsfenster auf den Benutzer reagiert. Der Prozess sollte eine MainWindowHandle
von msdn haben:
true, wenn die Benutzerschnittstelle des zugehörigen Prozesses auf das System reagiert; sonst, falsch.
Wenn der Prozess kein MainWindowHandle hat, gibt diese Eigenschaft true zurück.
Sie können das von der Anwendung verwendete Zeitlimit ändern.Respondering check dies .
Von Ссылка
Wenn ein Prozess über eine Benutzeroberfläche verfügt, kontaktiert die Eigenschaft Reagieren die Benutzeroberfläche, um festzustellen, ob der Prozess auf Benutzereingaben reagiert. Wenn die Schnittstelle nicht sofort reagiert, gibt die Antworteigenschaft false zurück. Verwenden Sie diese Eigenschaft, um zu ermitteln, ob die Schnittstelle des zugehörigen Prozesses nicht mehr reagiert.