這是一個Windows Phone7項目。 我在我的代碼中有幾個異步調用,最後,填充一個全局的List。但是我的問題是,我怎麼知道當的異步作業完成了,這樣我就可以在代碼中繼續了? 編輯我更新的代碼:如何知道我的異步功能何時完成? (windows phone7 dev)
private void GetFlickrPhotos(Action finishedCallback)
{
Action<FlickrResult<PhotoCollection>> getPhotoCollectionCallback;
getPhotoCollectionCallback = GetPhotoCollection;
flickr.InterestingnessGetListAsync(getPhotoCollectionCallback);
finishedCallback();
}
private void GetPhotoCollection(FlickrResult<PhotoCollection> photoColl)
{
PhotoCollection photoCollection = (PhotoCollection)photoColl.Result;
foreach (Photo photo in photoCollection)
{
flickrPhotoUrls.Add(photo.MediumUrl);
}
}
private void Grid_Loaded(object sender, RoutedEventArgs e)
{
GetFlickrPhotos(() =>
{
int test = flickrPhotoUrls.Count;
});
}
異步調用.NET框架4.使用Action<T>
它仍然不會等待異步調用完成。是因爲異步調用是從「GetFlickrPhotos」完成的嗎?
這可能與我發佈的更新代碼有關嗎? – 2011-03-26 11:54:43
謝謝,但仍然,我得到我的URL列表填充的唯一方法是通過在調用代碼上設置斷點:FlickrPhotoURLsLoaded(this,new EventArgs());如果我不在這裏設置斷點,代碼只是進入下一行。是否有可能使代碼等待調用完成,然後繼續? – 2011-03-26 18:05:17