public static async Task <ImageSourceServiceResult?> SubmitAsync(this RequestBuilder requestBuilder, RequestManager requestManager, CancellationToken cancellationToken = default) { var callback = new RequestListener(); try { requestBuilder = requestBuilder.AddListener(callback); var target = requestBuilder.Submit(); var drawable = await callback.Result; if (drawable == null) { return(null); } return(new ImageSourceServiceResult(drawable, () => requestManager.Clear(target))); } finally { GC.KeepAlive(callback); } }