Ich habe eine ziemlich große Anwendung geschrieben, die im Hintergrund läuft, Dome-Sachen macht und einige Daten verarbeitet.Meine C# -Anwendung ist in einer Schleife, wie kann ich die Position im Code finden?
Jetzt ist das Problem, seit einiger Zeit läuft die Anwendung gut. Aber wenn ich einen Tag später zum Beispiel nachschaue, scheint der Backgroundworker meiner Anwendung zu loopen oder stecken zu bleiben. Es gibt keine Fehlermeldung und die Benutzeroberfläche der Anwendung läuft immer noch einwandfrei. Es hört einfach auf, Daten zu verarbeiten.
Speziell für diesen Fall habe ich eine einfache Website für mich hinzugefügt, wo der Backgroundworker die aktuelle DateTime meldet. Wenn die DateTime auf der Website etwas aktuell ist, weiß ich, dass es gut läuft. Aber wenn es in der Vergangenheit ist, weiß ich, dass meine Anwendung blockiert ist.
Das Problem tritt nach einer unbestimmten Zeit auf. Es kann 10 Minuten oder 90 Stunden sein.
Jetzt zum Debuggen: Gibt es einen Weg in Visual Studio, dass ich sehen kann, wo die Anwendung derzeit ist? Das würde das Debuggen erheblich vereinfachen. Otherwhise Ich muss Stützpunkte auf Trial-and-Error-Basis ...
Mit freundlichen Grüßen,
Julian
Hängen Sie den Debugger an und drücken Sie die Pause-Taste. – CodeCaster
Ich bekomme den Backgroundworker dann nicht. Ich komme dann zur aktuellen Zeile: Application.Run (new Form1()); –
Verwenden Sie ein Protokollierungsframework, um die Schritte zu registrieren, die Ihre Anwendung innerhalb der Schleife ausführt. Dump in der Protokolldatei auch die Informationen über die Werte der Schlüsselvariablen innerhalb der Schleife und die Lebensdauer und die wichtigsten Punkte innerhalb der Schleife verwalten. Lassen Sie Ihre App laufen und überprüfen Sie nach Ablauf der erforderlichen Zeit den Inhalt der Protokolldatei. – Steve