joek1975 joek1975 - 18 days ago 6
Vb.net Question

BackgroundWorker Event Handlers

I have a

BackgroundWorker
object that I instantiated to perform a DB process on a background thread ansynchronously. I have event handlers for
DoWor
k and
RunWorkerCompleted
.

I can tell that the
BackgroundWorker
is disposing of itself because I added a
MessageBox
into the
Disposed
event handler.

My question is this:

Is it necessary to detach the event handlers to ensure that the memory is cleaned up and that there are not memory leaks?

Answer

If an event publisher is being garbage collected, then there's no need to unsubscribe. You only need to unsubscribe from events if the event subscriber (the target of the handler delegate) needs to become eligible for garbage collection before the publisher does.