我有一些代码加载这样的图像:
using (var sourceImage = Image.FromFile(fullImagePath))
{
return new Bitmap(sourceImage);
}
有时,图像将被错误命名或不在预期的位置,并且正确抛出System.IO.FileNotFoundException.但是,抛出此异常通常需要大约1秒.当我的代码抓取几百个图像并且其中几个丢失时,这会为该过程增加大量时间.
如果需要抛出异常,有没有办法加速异常?
我能想到的唯一选择是检查图像是否首先存在,但是为每个图像提取增加了几十毫秒,这也不是一个好的解决方案.
澄清:fullImagePath包含的示例如下:
\\ImageSrv\secure\sites\2756\27074\760789\bthumb\1287.jpg
在同一目录中可能有几百个其他图像.
结论:看起来检查文件存在是最好的方法.
最佳答案 >自己防止异常.检查文件是否存在而不是让Image.FromFile失败并通过异常shenennigans
>将缓存保留在内存中,以消除额外硬盘驱动器调用的必要性
>如果情况需要,请使用FileSystemWatcher更新缓存