BackgroundWorker ei kaappaa poikkeuksia DoWork-metodin sisällä jos ohjelmaa ajetaan debug-moodissa VS:llä

toukokuu 12, 2008 at 15:34 (.net, coding) (, , , )

BackgroundWorker ei kaappaa poikkeuksia DoWork-metodin sisällä jos ohjelmaa ajetaan debug-moodissa VS:llä. Poikkeuksethan pitäisi pystyä käsittelemään RunWorkerCompleted-eventhandlerin avulla (e.Error)

Syynä on se, että VS on kovin innokas varastamaaan lentävän poikkeuksen.

Korjaus:Jotta ohjelma käyttäytyisi debug-moodissa kuten release-moodissa pitää DoWork-metodi koristella [System.Diagnostics.DebuggerNonUserCodeAttribute()] attribuutilla. esim

[System.Diagnostics.DebuggerNonUserCodeAttribute()]
void worker_DoWork(object sender, DoWorkEventArgs e)
{

}

lähde:

BackgroundWorker unhandled error – MSDN Forums

Lähetä kommentti