lvi.Bounds で例外が発生しますが、それを止めるために何を確認すればよいかわかりません。コントロールを表示していて、Resize イベントまたは sizeChanged でこのメソッドを呼び出したとき、またはすべてを作成した後、コードが Windows に戻る前にのみ発生するようです。
private List<uint> GetIndexes(ListView vv)
{
List<uint> ret = new List<uint>();
foreach (ListViewItem lvi in vv.Items)
{
uint uiKey = ((uint)lvi.Tag);
if (!requestedImgs.Contains(uiKey) && lvi.Bounds.IntersectsWith(vv.ClientRectangle) && DctImages.Contains(uiKey))
{
ret.Add(uiKey);
}
}
return ret;
}