Exemplo n.º 1
0
        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);
            }
        }