Ich habe eine .NET-winforms-Anwendung geschrieben, die einen sekundären Thread verwendet, um eine schwere Verarbeitung durchzuführen, die den Fortschritt an den UI-Thread zurückgibt. Alles funktioniert korrekt, das Formular zeigt den Fortschritt an, und ich habe auch eine Abbrechen-Schaltfläche erstellt, um den Verarbeitungs-Thread zu unterbrechen. Wenn jedoch der zeitaufwändige Prozess die Anwendung durchläuft und mein gesamter Computer langsamer wird. Es dauert eine lange Zeit, Fenster zu ziehen, und es gibt sogar eine erhebliche Verzögerung beim Versuch, Buchstaben in Notepad zu schreiben.Ändern der Threadpriorität, um mein Programm und den Computer reaktionsfähiger zu machen
Ich nehme an, ich muss die Priorität des Verarbeitungsthreads reduzieren und/oder die Priorität des UI-Threads erhöhen. Ist das richtig? Im Moment haben beide Threads die Priorität Normal.
Ist es genauso einfach wie das folgende? Oder sollte ich etwas anderes tun?
Thread.CurrentThread.Priority = ThreadPriority.AboveNormal;
Wie sollte ich die Prioritäten ändern? Soll ich die Priorität der Verarbeitung reduzieren oder die Priorität der Benutzeroberfläche oder beides erhöhen? Und zu welcher Einstellung? Über Normal oder am höchsten?
Eric, welche Art von Prozessor ist in Ihrer Entwicklungsmaschine? Wie oft kommuniziert der Worker Thread zurück zur Benutzeroberfläche? – overslacked