0

一連のファイルを にロードし、およびListViewを使用Image.FromFile()して、指定された列に各ファイルの解像度を表示します。ただし、少数のファイルをロードするたびに、このメソッドはファイルのスキップを開始します。最初に、たとえば 50 個のファイルがすべて適切にロードされたとしますが、その後、ますます多くのファイルがスキップされます。.Width.Height

この問題の原因は何ですか?また、より良い代替方法はありますか? また、この方法では読み込みプロセスが大幅に遅くなるため、このプロセスを少し高速化できることを願っています。

編集:申し訳ありません...関連するコードは次のとおりです:

private void AddItem(string file)
{
     FileInfo fi = new FileInfo(file);
     ListViewItem item = new ListViewItem(fi.FullName);

     try
     {
          Image img = Image.FromFile(fi.FullName);
          item.SubItems.Add(string.Format("{0} x {1}", img.Width, img.Height));
     }

     catch { }

     ((ListView)sender).Items.Add(item);

}

try/catch メソッドは、画像以外のファイルのエラーを防ぐためのものです。ただし、スキップの問題については「責任がある」ようです。それらを無効にすると、「メモリ不足」エラーが発生します。これが本当の原因のようです。

4

0 に答える 0