Laden...

Exceptions in Thread (Pool) abfangen

Erstellt von mosspower vor 14 Jahren Letzter Beitrag vor 14 Jahren 750 Views
mosspower Themenstarter:in
456 Beiträge seit 2007
vor 14 Jahren
Exceptions in Thread (Pool) abfangen

Hallo "Kollegen",

gibt es eine Möglichkeit vom Hauptthread aus, unbehandelte Exceptions die in sog. Unterthreads aus dem Threadpool erstellt wurden, zu handeln?

Zwar habe ich Events vereinbart, die genutzt werden können, bzw. sollten in diesem Fall. Was ist aber, wenn sich jemand nicht dran hält, das würde ja bedeuten, dass, wenn ein Aufruf alle Sekunde stattfindet, z.B. ein Timer ruft eine Methode immer wieder auf, einen ganzen Tag jede Sekunde eine Exception geworfen wird, was nicht gerade performant wäre. Ich würde gerne bei unbehandelten Exceptions den Thread gar nicht mehr aufrufen, sondern als aborted markieren. Geht das irgendwie, dass ich an die Exception rankomme?

Danke schon einmal für etwaige Antworten im Voraus.

I
279 Beiträge seit 2008
vor 14 Jahren

Es gibt ein Application.ThreadException-Ereignis, vlt. hilft dir das irgendwie.

mosspower Themenstarter:in
456 Beiträge seit 2007
vor 14 Jahren

Hallo iced-t89,

das geht aber imo nur in Windows-Forms-Anwendungen, bzw. in meinem Fall wird das Ereignis nicht gefeuert, wenn ich das ausprobiere. Bei meinem Beispiel, hätte ich wohl dazuschreiben sollen, handelt es sich um Consolen- und Windows-Service-Anwendungen.

Gruß

I
279 Beiträge seit 2008
vor 14 Jahren
mosspower Themenstarter:in
456 Beiträge seit 2007
vor 14 Jahren

Leider geht es auch nicht mit der AppDomain, wie teilweise auch in den Artikeln beschrieben. Es scheint so zu sein, dass es nicht in (Unter) Threads geht, sondern nur im Hauptthread wird das Event gefeuert.

Leider ist auch im Interface IAsynchResult der Callback-Methode nichts zu finden - ich finde das nicht schön, dass ein Programmierer da nicht mehr rankommt, gerade dann, wenn man ein Framework baut und ein Consumer das nicht richtig anwendet.

Nun, dann muss ich halt drauf verzichten.

Trotzdem, danke für Deine Bemühungen!