Hi,
ich nutze einen BackgroundWorker, der SAP-Daten empfängt und in eine lokale Datenbank schreibt. Dies tut er tagelang ohne Probleme, außer die Verbindung zum SAP-Server reißt ab. Mit ein wenig Glück fängt er sich wieder, aber meistens bleibt die letzte Aktion (ruft eine Funktion in einer SAP .dll auf) dann hängen und man kann warten, bis die Bits kippen. Meine Idee war nun, den BackgroundWorker zu überwachen und diesen nach gewisser Untätigkeit grob fahrlässig zu beenden, sprich "abzuschießen" und anschließend neu zu starten. Das scheint jedoch nicht ganz so einfach zu sein. "CancellationPending" hilft hier nicht weiter, weil der BackgroundWorker ja nicht mehr lebt. Übersehe ich hier eine einfache Lösung? Im Moment schieße ich im Problemfall die ganze Anwendung via TaskManager ab, aber das soll kein Dauerzustand werden.
ich nutze einen BackgroundWorker, der SAP-Daten empfängt und in eine lokale Datenbank schreibt. Dies tut er tagelang ohne Probleme, außer die Verbindung zum SAP-Server reißt ab. Mit ein wenig Glück fängt er sich wieder, aber meistens bleibt die letzte Aktion (ruft eine Funktion in einer SAP .dll auf) dann hängen und man kann warten, bis die Bits kippen. Meine Idee war nun, den BackgroundWorker zu überwachen und diesen nach gewisser Untätigkeit grob fahrlässig zu beenden, sprich "abzuschießen" und anschließend neu zu starten. Das scheint jedoch nicht ganz so einfach zu sein. "CancellationPending" hilft hier nicht weiter, weil der BackgroundWorker ja nicht mehr lebt. Übersehe ich hier eine einfache Lösung? Im Moment schieße ich im Problemfall die ganze Anwendung via TaskManager ab, aber das soll kein Dauerzustand werden.
An manchen Tagen gibt es zu allem Überfluss auch noch Ärger!