I posted it in the wrong newsgroup. So I have to repost it again. Sorry.

I used Application.ThreadException event to handle all unhandled exceptions
in WinForm application. However, when I start converting my application
into asynchronous operation, I have faced with some problems. I used
AsyncCallBack to do something when the operation finishes. However, as you
might know, AsyncCallBack delegate will be called in a different thread from
the activated thread (which is likely to be the thread that run the
asynchronous operation). In certain cases, this delegate might throw an
exception and I WOULD LIKE to have the Application.ThreadException to handle
this exception. But I cannot do that since the current thread is not UI
thread. So, the exception will just disappear. I also thought of a silly
idea by calling Control.Invoke(ThrowAnExceptionForMe) but inside
Control.Invoke, there is a try-catch block which will throw an exception
back to the calling thread (which is not a UI thread). It would be nice if I
can find a workaround for this without changing the way I handled the
exception (I mean still depending on Application.ThreadException). Any
suggestion?

Matt