Я разрабатываю приложение iOS в Xamarin на C#, у меня есть метод, который должен вызываться в асинхронном режиме. Я получил this руководство, но он, похоже, отличается от моих потребностей.Xamarin.iOS async ждут метод не работает
Я пытался сделать это:
var tasks = new List<Task<UIImage>>();
var imageUrls = new[] {
"http://www.mySite/images/02.jpg",
"http://www.mySite/images/03.jpg",
"http://www.mySite/images/04.jpg",
"http://www.mySite/images/05.jpg",
"http://www.mySite/images/06.jpg",
"http://www.mySite/images/07.jpg",
"http://www.mySite/images/08.jpg",
"http://www.mySite/images/09.jpg",
"http://www.mySite/images/10.jpg",
"http://www.mySite/images/11.jpg",
"http://www.mySite/images/12.jpg",
"http://www.mySite/images/3.jpg",
"http://www.mySite/images/14.jpg",
"http://www.mySite/images/15.jpg"
};
foreach (var imageUrl in imageUrls)
{
var task = getImageFromUrl(imageUrl);
tasks.Add(task);
}
var images = await Task.WhenAll(tasks);
вызываемый метод:
async Task<UIImage> getImageFromUrl(string uri)
{
using (var url = new NSUrl(uri))
using (var data = NSData.FromUrl(url))
return UIImage.LoadFromData(data);
}
он работает синхронно, и показывает мне следующее предупреждение:
Warning CS1998: Async block lacks `await' operator and will run synchronously (CS1998)
Что я отсутствует в моем коде? Кажется, что метод getImageFromUrl() пропускает свойство async. Есть ли другой способ загрузки изображений с URL-адреса асинхронно?
Пожалуйста, обновите ваш код, чтобы показать биты, которые должны быть асинхронной (доступ дб, сетевой вызов, и т.д.). – Jason
@Jason только что отредактировал .... – pasluc74669
Ни одна из этих операций не асинхронна. Вы можете вручную выполнить их в другом потоке, если хотите, но они не являются асинхронными. – Jason