public static Image End(IAsyncResult result) { AsyncLoadImageResult loadImageResult = ThrowHelper.DownCast <AsyncLoadImageResult>(result, "result"); loadImageResult.WaitForCallbackComplete(); loadImageResult.SetCompleted(loadImageResult.Closure.Error); loadImageResult.CheckPendingException(); return(loadImageResult.Closure); }
public static IAsyncResult Begin(ImageLoad load, IntPtr p, Session session, ImageSize size, AsyncCallback userCallback, object state) { AsyncLoadImageResult result = new AsyncLoadImageResult(userCallback, state); Image image = new Image(LibSpotify.sp_image_create_r(session.Handle, load(p, size))); result.Closure = image; image.Loaded += result.HandleImageLoaded; // It's possible the image loaded before we registered the result.HandleImageLoaded if (image.IsLoaded) { result.CompletedSynchronously = true; result.SetCompleted(image.Error); } return(result); }