(私は同様のスレッドを検索しましたが、この特定の問題に対処するものは見つかりませんでしたが、ここやここなどの類似したスレッドがいくつかありました。)
アプリのパフォーマンスを評価していますが、「リソースが見つかりません」というIOExceptionが発生していることに気づきました。正確に何回発生しているかはわかりませんが(ユーザーがアプリをどのように使用しているかによって大きく異なります)、少なくとも1ダースほどです。
のようなファイル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);
}