編集:申し訳ありません-問題をもう少しよく理解したので、私の問題は別の場所にあると思います
2 つの非同期リクエストがあります。
最初はこれです:
public void DownloadWebData(Uri apiUrl)
{
WebClient client = new WebClient();
client.DownloadDataCompleted += DownloadDataCompleted;
client.DownloadDataAsync(apiUrl);
}
public void DownloadDataCompleted(object sender, DownloadDataCompletedEventArgs e)
{
string result = System.Text.Encoding.UTF8.GetString (e.Result);
Uri downloadLink = (GetUri(result));
}
基本的には、HTTP 経由でいくつかの基本的なテキスト データを返すリモート Web サーバーへの単純な URL ベースの API 要求を作成します。GetUri() は、そのデータを解析して、画像をダウンロードするためにデータからアドレスを抽出するだけです。
次に、monotouch.dialog で imageLoader を使用して画像をダウンロードします。すべてのコードは同じクラスにあります。
編集:imageLoaderコードを追加しました(コメントとして十分に機能するため、コンソール行を残しました)。
public void downloadImage (Uri imageUri)
{
var tmp_img = ImageLoader.DefaultRequestImage (imageUri, this);
if (tmp_img != null)
{
adView.Image = tmp_img;
Console.WriteLine ("Image already cached, displaying");
}
else
{
adView.Image = UIImage.FromFile ("Images/downloading.jpg");
Console.WriteLine ("Image not cached. Using placeholder.");
}
}
public void UpdatedImage (System.Uri uri)
{
adView.Image = ImageLoader.DefaultRequestImage(uri, this);
}