Ich entwickle eine iOS-App in Xamarin in C#, ich habe eine Methode, die im asynchronen Modus aufgerufen werden muss. Ich habe this Richtlinie, aber es scheint anders zu sein als meine Bedürfnisse.Xamarin.iOS async warten Methode funktioniert nicht
Ich habe versucht, dies zu tun:
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);
die aufgerufene Methode ist:
async Task<UIImage> getImageFromUrl(string uri)
{
using (var url = new NSUrl(uri))
using (var data = NSData.FromUrl(url))
return UIImage.LoadFromData(data);
}
es läuft synchron, und zeigt mir die folgende Warnung:
Warning CS1998: Async block lacks `await' operator and will run synchronously (CS1998)
Was bin ich fehlt in meinem Code? Es scheint, dass die getImageFromUrl() -Methode eine asynchrone Eigenschaft vermisst. Gibt es eine andere Möglichkeit, Bilder von URL asynchron zu laden?
Bitte aktualisieren Sie Ihren Code, um die Bits zu zeigen, dass async (db Zugriff, Netzanruf, etc.) sein müssen. – Jason
@Jason gerade bearbeitet .... – pasluc74669
keine dieser Operationen sind async. Sie können sie auch manuell in einem anderen Thread ausführen, sie sind jedoch keine asynchronen Vorgänge. – Jason