async void Tick() { var downloadmanager = new MyDownloadManager(); var downloadqueue = new NSOperationQueue { MaxConcurrentOperationCount = 1 }; string sessionidentifier = "myapp.download.images"; NSUrlSession nsurlsession = null; using (var configuration = NSUrlSessionConfiguration.CreateBackgroundSessionConfiguration(sessionidentifier)) { nsurlsession = NSUrlSession.FromConfiguration(configuration, downloadmanager, downloadqueue); } for (int i = 0; i < 2000; i++) { var image = string.Format("https://xamarin.com/content/images/pages/index/[email protected]?id={0}", i); var ii = i; NSTimer.CreateScheduledTimer(TimeSpan.FromMilliseconds(10 + i / 10), (v) => { using (var url = NSUrl.FromString(image)) { using (var request = NSUrlRequest.FromUrl(url)) { var task = nsurlsession.CreateDownloadTask(request); task.Resume(); Console.WriteLine("Created task #{0}: {1}", ii, task); } } }); } }
async void Tick () { var downloadmanager = new MyDownloadManager(); var downloadqueue = new NSOperationQueue { MaxConcurrentOperationCount = 1 }; string sessionidentifier = "myapp.download.images"; NSUrlSession nsurlsession = null; using (var configuration = NSUrlSessionConfiguration.CreateBackgroundSessionConfiguration (sessionidentifier)) { nsurlsession = NSUrlSession.FromConfiguration (configuration, downloadmanager, downloadqueue); } for (int i = 0; i < 2000; i++) { var image = string.Format ("https://xamarin.com/content/images/pages/index/[email protected]?id={0}", i); var ii = i; NSTimer.CreateScheduledTimer (TimeSpan.FromMilliseconds (10 + i / 10), (v) => { using (var url = NSUrl.FromString (image)) { using (var request = NSUrlRequest.FromUrl (url)) { var task = nsurlsession.CreateDownloadTask (request); task.Resume (); Console.WriteLine ("Created task #{0}: {1}", ii, task); } } }); } }