Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Backgroundworker "hart" abschießen
Viper2000
myCSharp.de - Member



Dabei seit:
Beiträge: 63

Themenstarter:

Backgroundworker "hart" abschießen

beantworten | zitieren | melden

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ß
private Nachricht | Beiträge des Benutzers
winSharp93
myCSharp.de - Experte

Avatar #avatar-2918.png


Dabei seit:
Beiträge: 5.742
Herkunft: Stuttgart

beantworten | zitieren | melden

Hallo Viper2000,
Zitat von 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.
private Nachricht | Beiträge des Benutzers
Schmitzo
myCSharp.de - Member



Dabei seit:
Beiträge: 82
Herkunft: Köln

beantworten | zitieren | melden

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...
private Nachricht | Beiträge des Benutzers
kleines_eichhoernchen
myCSharp.de - Member

Avatar #avatar-2079.jpg


Dabei seit:
Beiträge: 3.971
Herkunft: Ursprünglich Vogtland, jetzt Much

beantworten | zitieren | melden

Zitat
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...
private Nachricht | Beiträge des Benutzers
kleines_eichhoernchen
myCSharp.de - Member

Avatar #avatar-2079.jpg


Dabei seit:
Beiträge: 3.971
Herkunft: Ursprünglich Vogtland, jetzt Much

beantworten | zitieren | melden

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...
private Nachricht | Beiträge des Benutzers
Schmitzo
myCSharp.de - Member



Dabei seit:
Beiträge: 82
Herkunft: Köln

beantworten | zitieren | melden

Das stimmt natürlich
private Nachricht | Beiträge des Benutzers
Viper2000
myCSharp.de - Member



Dabei seit:
Beiträge: 63

Themenstarter:

beantworten | zitieren | melden

Okay, danke!
private Nachricht | Beiträge des Benutzers