Dec 31, 2009 12:48 PM|SGWellens|LINK
That's an interesting problem.
I think what is happening is that the delegated function is running in a different thread so when the exception is raised, it isn't in the call stack of the calling thread so it is caught and forwarded to the MyMethod_AsyncResult function.
You try to handle it in MyMethod_AsyncResult but that function is still in the delegated function's thread. So when you throw another exception, it still isn't in the main thread and it's forwarded again to the MyMethod_AsyncResult function.
You'll need to change the way the function reports errors so both threads have access to the information.