Ejemplo n.º 1
0
        public void RequestDownload(
            string url,
            string downloadPath,
            Action success,
            Action <Exception> error)
        {
            var request = new MvxFastFileDownloadRequest(url, downloadPath);

            request.DownloadComplete +=
                (sender, args) =>
            {
                OnRequestFinished(request);
                success();
            };

            request.DownloadFailed +=
                (sender, args) =>
            {
                OnRequestFinished(request);
                error(args.Value);
            };

            RunAsyncWithLock(
                () =>
            {
                _queuedRequests.Enqueue(request);

                if (_currentRequests.Count < _maxConcurrentDownloads)
                {
                    StartNextQueuedItem();
                }
            });
        }
Ejemplo n.º 2
0
        private void OnRequestFinished(MvxFastFileDownloadRequest request)
        {
            RunAsyncWithLock(
                () =>
            {
                _currentRequests.Remove(request);

                if (_queuedRequests.Any())
                {
                    StartNextQueuedItem();
                }
            });
        }