サムネイルを生成するためのルーチンを作成しました。基本的なフローは次のとおりです。
1) get all jpg url from directory
2) iterate all the url
2.1) load url into a bitmap using URLRequest
2.2) resize the bitmap to small size
2.3) encode the bitmap into jpg
2.4) write the jpg into a file
3) update list dataprovider with thumb url and refresh
これは 1 つのファイルでは機能しますが、2 つ以上のファイルでは失敗します。これは、ステップ 2.1 から 2.4 が非同期メソッドを含む静的関数に含まれているためです。2.1 は非同期、サイズ変更は非同期、エンコードは非同期で、それぞれが完了イベントを待機する無名関数を介してネストされています。
次の反復がステップ 2.1 に到達するまでに、新しい URL が渡され、前の反復からのコールバック メソッドがそれを使用します。
この問題に対するより良いアプローチは何ですか? ステップ 2 を実行するクラスを作成し、静的関数の代わりに毎回インスタンス化するだけですか? ずいぶんと重い気がします。