我有一些代码可以加载这样的图像:
using (var sourceImage = Image.FromFile(fullImagePath))
{
return new Bitmap(sourceImage);
}
有时,图像将被错误命名或不在预期位置,并且正确抛出System.IO.FileNotFoundException
。但是,抛出此异常通常需要大约1秒。当我的代码抓取几百张图片并且其中几张丢失时,这会给这个过程增加一大块时间。
如果需要抛出异常,有没有办法加速异常?
我能想到的唯一选择是检查图像是否先存在,但是每增加一次图像就会增加几十毫秒,这也不是一个好的解决方案。
澄清:fullImagePath
包含的示例是:
\\ImageSrv\secure\sites\2756\27074\760789\bthumb\1287.jpg
同一目录中可能还有数百个其他图像。
结论:看起来检查文件存在是最好的方法。
答案 0 :(得分:2)
答案 1 :(得分:0)
您可以保留通过其他线程定期更新的文件名缓存。然后您可以检查并立即知道文件是否存在(绕过File.Exists的开销)
当然,如果不断添加/删除目录中的文件,这将无效。