Hallo
Ich habe ein Programm dass mit 2 Backgroundworkern arbeitet. Diese sind dazu da ein Filehandling zu übernehmen... also ZIP Dateien entpacken und hin und her auf verschiedene Server zur weiteren Verarbeitung kopieren.
Das Programm läuft bestens, bis auf der Tatsache, dass jedes Mal nach dem Wochenende (wo sich gar nix tut und er einfach so wartet) ein Backgroundworker nicht mehr arbeitet (er soll einen Ordner auf einen bestimmten Dateityp kontrollieren). Wenn ich den Prozess stoppe(ist durch einen Button im Programm möglich) und wieder neu starte funktioniert alles wieder wie vorher. StackOverflow kann es nicht sein, weil es keine rekurisven Methodenaufrufe gibt. Es gibt lediglich eine "endlosschleife" in der er einfach wartet, die mit einem Sleep verzögert wird. Gibt es irgendwelche Ansätze wo das Problem liegen könnte? Ich habe keinen ähnlichen Fall im Internet gefunden... das wichtige an der Applikation ist, dass sie "unendlich" lange laufen soll, dass heißt deswegen so wartungsfrei wie möglich sein sollte.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| private void out() { int wait = 3000; while (out_active) { if (!out_bgw.CancellationPending) { if (out_progress == 0) { out_msg = "Warte auf Dateien...\r\n"; } else { arbeiten(); out_progress = 1; out_msg += "Fertig\r\n"; } } else { out_msg = "Wird abgebrochen...\r\n"; } out_bgw.ReportProgress(out_progress); takeNap(wait, out_bgw); } } |
Danke im vorraus!
lg Nitin
Moderiert von
Kha: Code- durch C#-Tags ersetztModeriert von
Christian S.: Topic aus C# - Die Sprache verschoben am Mo 06.04.2009 um 18:35