Wie man die app erweitern timeout in Win 7?
Mein Programm ist für das Rendern einer animation clip, aber jedes frame berechnet werden muss, bevor gerendert wird. Es scheint, dass, wenn die Berechnung dauert nur Sekunden, windows fängt an zu erkennen, mein Prozess als "nicht-reagiert" und sich weigert zu erbringen, nichts mehr, obwohl der Task-Manager der Prozess selbst scheint zu wechseln zwischen "running" und "nicht-Reaktion" die ganze Zeit.
Ich Suche Lösungen online für eine Weile. Eine Menge Leute vorgeschlagen, zu löschen einige registry-Einträge:
HKEY_USERS.DEFAULT\Control Panel\Desktop\HungAppTimeOut
HKEY_USERS.DEFAULT\Control Panel\Desktop\WaitToKillAppTimeOut
HKEY_CURRENT_USER\Control Panel\Desktop\HungAppTimeOut
HKEY_CURRENT_USER\Control Panel\Desktop\WaitToKillAppTimeOut
HKEY_CURRENT_USER\Control Panel\Desktop\WaitToKillServiceTimeOut
Aber ich konnte nicht finden Sie diese Einträge. Und nach den Beschreibungen, Sie alle Einträge, erwähnt zu kontrollieren, wie lange das system wartet, nachdem die der Benutzer benötigt, um einen Prozess zu beenden oder sich Abmelden, um zu töten, ein Verfahren oder eine Dienstleistung. Sie sind also nicht so genau, was ich will. Ich denke, es muss eine gewisse Schwelle, um zu Steuern, Wann das system sollte beginnen zu überlegen, einen Prozess als "reagiert nicht" und ich will zu ändern, dass die Schwelle in einen etwas größeren.
Vielen Dank für Ihre Aufmerksamkeit und die Zeit, jede Anregung ist willkommen!
InformationsquelleAutor He01 | 2011-01-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie es vermeiden, hängen Sie die Benutzeroberfläche in Erster Linie durch das handeln Ihrer Bearbeitung/Berechnung in einem hintergrund-thread, anstatt auf dem UI-thread. Wenn Sie mit WinForms oder WPF verwenden BackgroundWorker.
Sehen Sie hier einige BGWorker Beispiele: WPF-Threads: Erstellen von Responsive Apps Mit Dem Dispatcher
Es ist eine bessere Praxis, um den code ändern, um stärker auf als das ändern eines OS-environment-variable 'workaround' ein relativ häufiges Problem (die Berechnung erfolgt auf hintergrund-threads eher als UI-threads). 🙂
Natürlich, wenn Sie nicht der ursprüngliche Entwickler, die offensichtlich macht die Sache schwieriger...
Ich verstehe, dass double-buffering und die Trennung von UI-thread und worker-thread ist wie die standard-Lösung für diese Art von problem. Und ich bin völlig mit Ihnen, wenn Sie sagen, es ist eine bessere Praxis. Die Dinge sind ich habe einen hierarchischen simulationssystems zur Berechnung des nächsten Frames, also muss ich double-buffer-alles auf jeder Ebene, und jetzt ich habe nicht viel Zeit, das zu tun. Das ist, warum ich gefragt, ob es einen "workaround" - Methode.
+1. Wenn Sie Ihre Benutzeroberfläche geht regelmäßig nicht reagiert, kann dies Auswirkungen auf die system-weite Reaktionsfähigkeit. Zum Beispiel, die übertragung von windows-Botschaften zu warten, für eine Auszeit, bevor das Ding senden Sie fortfahren können. (Aber oben auf, dass, sollte der Benutzer in der Lage sein zu verschieben Ihre app Fenster, während Ihre app ist die Berechnung der Dinge. Niemand mag windows stecken in Ort.)
InformationsquelleAutor Aphex
Ich bin mit Microstation, ein Modell zu bauen, so ist dies ein ähnlicher Prozess. Etwa auf halbem Weg durch den Bau der Modell-alles gefriert, und fügt die "Anwendung reagiert nicht" - Meldung an den Titel.
Deaktivieren des Desktopfenster-Manager Sitzungs-Manager für mich gearbeitet, jedoch in einer enterprise-Umgebung ist dies nicht die beste Lösung, die als gemeinsame Benutzer nicht über die Rechte zum Zugriff auf das Dienste-Fenster.
InformationsquelleAutor user3491454
Deaktivieren Desktop Window Manager Session Manager von Dienstleistungen. Arbeitete für mich. Dass auch deaktiviert-aero-Design durch die Art und Weise. Win7 sieht wirklich schön aus, aber es hat funktioniert.
InformationsquelleAutor sinvelikogmajstora