2 Stimmen

Periodische Audits und bewährte Verfahren durchführen.

Ich mache ein Windows-Formular und möchte, dass alle 30 Sekunden eine Überprüfungsaufgabe durchgeführt wird. Diese Überprüfung überprüft im Wesentlichen eine Reihe von Diensten auf entfernten Computern und meldet den Status in ein Richtextfeld zurück.

Aktuell lasse ich dies in einem endlosen Hintergrundthread laufen und verwende einen Invoker, um das Richtextfeld im Hauptformular zu aktualisieren.

Ist das bewährte Praxis? Wenn ich eine endlose Schleife in meinem Hauptformular erstelle, würde das verhindern, dass irgendwelche meiner Schaltflächen funktionieren, oder?

Ich frage mich nur, ob ich jedes Mal, wenn ich eine periodische Überprüfung durchführen möchte, einen neuen Thread erstellen muss, der den Status oder die Datei oder Ähnliches überprüft?

Bearbeitung: Ich habe den Timer-Klasse genauer unter die Lupe genommen und mich für System Timer entschieden, da er sich mit einer längeren Funktion als besser erwiesen hat. Vielen Dank, dass Sie mich in die richtige Richtung gewiesen haben.

4voto

Brian Lyttle Punkte 14413

Sie sollten sich die Windows Forms Timer-Klasse genauer ansehen. Sie wollen keine Schleife in Ihrem Hauptformular. Es ist besser, den Timer zu verwenden, um Ereignisse auszulösen, die auf einem anderen Thread asynchron verarbeitet werden können.

1voto

Mikael Svenson Punkte 37911

(Ich gehe davon aus, dass es sich um eine Winforms-Anwendung handelt)

Das Aufrufen auf dem Hauptthread ist der richtige Weg. Aber was ist mit der Verwendung eines Timers anstelle einer endlosen Schleife? Es gibt Ihnen mehr Kontrolle. Und die Timer-Funktion würde auf seinem eigenen Thread ausgeführt werden.

Es ist eine gute Praxis, langwierige Arbeiten auf einem Hintergrundthread auszuführen, damit der Hauptthread mit der Benutzeroberfläche arbeiten kann.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X