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.
Es gibt ein Application.ThreadException-Ereignis, vlt. hilft dir das irgendwie.
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ß
Ich poste mal ein paar Links zu Beiträgen die ich über Google gefunden habe:
Confused with Application.ThreadException...
Console application thread exception handling
Application.UnhandledException in Windows forms...
Unhandled Exception Application event...
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!