La imagen se asigna a otro elemento de fila de ListView

Sé que la espera asíncrona es muy útil para preparar datos para un ListView / GridView antes de configurar su adaptador. Por ejemplo:

// in Activity.cs
async void OnCreate(Bundle SavedInstanceState)
{
    SetContentView(...);
    ListView listView = FindViewById<ListView>(...);
    AdapterData data = await Task.Run(() => GetDataFromWorkerThread);
    listView.SetAdapter(data);
}

Pero lo que necesito es:

// in ListViewAdapter.cs
public override View GetView (int position, View convertView, ViewGroup parent) 
{
    if(convertView == null) 
    {
        // create new view
    }
    ImageView imgView = convertView.FindViewById<ImageView>(Resouce.Id.img_view_id);
    ResizeImageAsync(imgView, imgResId);
    return convertView; // convertView is returned before ImageView is assigned with resized image
}

private async void ResizeImageAsync(ImageView imageView, int imgResId)
{
    Bitmap bmp = await Task<Bitmap>.Run(() => ResizeImage(imgResId, 50, 50));
    imageView.SetImageBitmap(bmp);
}

Entonces a vecesconvertView enGetView() se devuelve antesResizeImageAsync() Está terminado. El problema esimage01 que se suponía que debía asignarse en la primera filaImageView ahora se asigna a la segunda o tercera filaImageView. ¿Alguien sabe cómo resolver este problema?

Respuestas a la pregunta(1)

Su respuesta a la pregunta