Xamarin에서 C#으로 iOS 응용 프로그램을 개발 중이며, 비동기 모드에서 호출해야하는 메서드가 있습니다. 나는 this 가이드 라인을 가지고 있지만 내 요구와 다른 것 같다.Xamarin.iOS async await 메서드가 작동하지 않습니다.
이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() 메서드가 비동기 속성을 누락 한 것으로 보입니다. url asynchrously에서 이미지를로드하는 다른 방법이 있습니까?
(DB 접근, 네트워크 호출 등) 비동기해야 비트를 표시하도록 코드를 업데이트하시기 바랍니다. – Jason
@ Jason 방금 편집했습니다 .... – pasluc74669
해당 작업 중 어느 것도 비동기입니다. 원하는 경우 다른 스레드에서 수동으로 실행할 수 있지만 본질적으로 비동기 작업은 아닙니다. – Jason