c# – FileNotFoundException抛出太长时间,有没有办法缩短超时?

我有一些代码加载这样的图像:

 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更新缓存

点赞