Just create a property with a public getter on your class that implements the IResult interface. Populate this property with the "return" value you want after the operation completes but before the completed event is raised and just read
in that value after you yield it.
var webServiceResult = new WebServiceResult();
yield return webServiceResult;
var returnValue = webServiceResult.MyProperty;