See Also: VfsStreamAsyncResult Members
To wait until the operation has finished, you cannot use the System.IAsyncResult.AsyncWaitHandle since that will also block the Gnome.Vfs thread. Instead, use GLib.MainContext.Iteration like this:
C# Example
while (!asyncResult.IsCompleted) { GLib.MainContext.Iteration (); }