Laden...

Exception aus BackgroundWork an Hauptanwendung

Erstellt von Grimmbizkit vor 9 Jahren Letzter Beitrag vor 9 Jahren 969 Views
G
Grimmbizkit Themenstarter:in
308 Beiträge seit 2006
vor 9 Jahren
Exception aus BackgroundWork an Hauptanwendung

Morgen zusammen,

gibt es eine Möglichkeit eine Exception (die in einem Background auftritt) an die "Hauptanwendung" zu thrown?

Dort habe ich folgenden Code:


try
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    Application.Run(new FormAppl());
}
catch (Exception ex)
{
    if (ex.GetType() == typeof(Classes.Config_UnknowName))
    {
        // IRGEDNWAS    
    }
}

Das sind ja 2 unterschiedliche Threads.
Geht sowas überhaupt?

Hoffe ihr könnt mir da helfen!

Gruß Simon

T
2.219 Beiträge seit 2008
vor 9 Jahren

Als billige Lösung eine static Exception Eigenschaft und diese dann im BackgroundWorker setzen lassen.

Da ist es dann auch egal ob es 2 Threads sind.
Du musst dann nur die Exception nach dem Abschluss auswerten.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

1.696 Beiträge seit 2006
vor 9 Jahren

Ich bin verantwortlich für das, was ich sage, nicht für das, was du verstehst.

**:::

S
145 Beiträge seit 2013
vor 9 Jahren

in deinem Beispielcode befindest du dich immer noch im MainThread
(ich seh da erstmal keine Background Thread)
du solltest wenn möglich die Exception in FormApl abfangen

ansosnten ev. noch folgende Events abonnieren für Exceptions die dir durch die lappen gehen:

Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
U
1.688 Beiträge seit 2007
vor 9 Jahren

Hallo,

falls es sich um die Klasse BackgroundWorker handeln sollte (die Frage ist in der Beziehung etwas, nun ja, lax), so kann man die Exception im RunWorkerCompleted Ereignis abfragen.

Sollte es sich nicht um den BackgroundWorker handeln, kann man sich dort aber abschauen, wie man's machen könnte.

G
Grimmbizkit Themenstarter:in
308 Beiträge seit 2006
vor 9 Jahren

Es handelt sich um die backgroundworker klasse.

Aber aus dem DoWork-Event bzw Complet Event bekomme ich die exception nicht "raus"?

Gruß Simon

U
1.688 Beiträge seit 2007
vor 9 Jahren

:rtfm: