(我搜索了类似的线程,但找不到任何解决这个特定问题的东西,尽管有几个类似的,比如这里和这里。)
我正在评估我们的应用程序的性能,我注意到我们收到了一些 IOExceptions “无法找到资源”。我不确定它到底发生了多少次(很大程度上取决于用户如何使用该应用程序),但至少有十几个左右。
我假设异常通常是性能昂贵的文件 I/O 调用,如File.Exists()
. 我知道在尝试加载文件之前检查文件是否存在总是一个好习惯。我的问题是,如果我检查这个特定文件是否存在,我会看到多少性能提升?(再次,忽略“无论如何你都应该这样做”,我只是想了解性能)。
选项1:
try
{
return (ResourceDictionary) Application.LoadComponent(uri);
}
catch (Exception)
{
//If it's not there, don't do anything
}
这不会进行额外的 IO 调用,但有时会抛出并吞下异常。
选项 2:
if(File.Exists(uri))
{
return (ResourceDictionary) Application.LoadComponent(uri);
}