You did nothing wrong, an event is not asynchronous.
What you want and what I've beeing trying to do myself is
to send the data to the thread from the main thread and
let both continue there work. With Win32 you just need to
use PostThreadMessage, what would be the equivalent
implementation on .NET? I was thinking of maybe using a
Win32 event object but that would not be the same. If
somebody can help please let us know.