Hallo,
habe ein Problem mit einem Backgroundworker. Nutze eine DLL die ein Gerät ansteuert. Die ausführung des Codes geschieht in einem Backgroundworker. Klappt alles wunderbar. Ab und zu kann es aber vorkommen, dass die DLL Funktion nicht mehr zurückkehrt. In diesem Fall würde ich gerne den Backgroundworker hart beenden.
Ist so etwas möglich?
Gruß
Hallo Viper2000,
Ab und zu kann es aber vorkommen, dass die DLL Funktion nicht mehr zurückkehrt. In diesem Fall würde ich gerne den Backgroundworker hart beenden.
Ist so etwas möglich?
Nicht, dass ich wüsste.
Verwende in diesem Fall lieber einen "normalen" Thread.
Der müsste ja dann in der Prozessliste auftauchen dieser BackgroundWorker, oder?
Dann hol dir doch die Prozessliste, prüfe den dazugehörigen Prozess, und beende den Prozess, wenn er eben keine Rückmeldung mehr gibt...
Ist so etwas möglich?
Nein geht nicht und sollte auch nicht gemacht. Grund, BGW arbeitet mit einem ThreadPool-Thread. Würdest du Thread.Abort aufrufen, wäre deine AppDomain im Ar***.
Was du machen kannst, statt des BGW das asynchrone Entwurfsmuster von MS verwenden oder aber du lagerst den unsicheren Teil des Codes in eine seperate AppDomain aus und zerstörst diese.
Eventuell hilft dir folgender Thread weiter: Thread TimeOut
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
Hallo Schmitzo,
ist eine schlechte Idee den eigenen Prozess abzuschießen.
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...