|
分類:[C#]
2011/07/12(Tue) 21:04:08 編集(投稿者)
Visual Studio 2008 SP1 + Windows Form Application + C#です。
特定フォルダにある画像ファイルの一覧を、 サムネイルで表示するプログラムを作っています。
実際にはタイマーで特定フォルダを監視し、 フォルダ中にある画像ファイル群が更新されていたら、 サムネイルを作りなおすということを行っています。
Image.FromFile()メソッドでファイルの読み込みをしているのですが、 OutOfMemoryExceptionが発生するときがあります。 画像は大きくないので、メモリ不足ではありません。 デバッガを貼ったり、スリープを入れたりすると再現しないことから、 タイミング問題だと思われます。
書き込み途中のファイルを読み込んでしまって、 ファイルフォーマット不正ということで、 OutOfMemoryExceptionが起こると推測しています。 Image.FromFileは不正なフォーマットのファイルを読み込むと OutOfMemoryExceptionを起こすようなので。
ファイル書き込み中は待つという方法で回避できるかと思うのですが、 どのような実装方法があるでしょうか?
|