A: 

You don't have any code in WriteCallback to indicate that you're done processing the event. So, I'm assuming your Main function or thread is not waiting for the request to be completed. Please see the sample code in the following documentation:

In particular, look at the C# example and search for allDone which is a ManualResetEvent used by the Main method to wait until the callback signals completion.

ars