在一種情況下,我需要加載數百個Azure blob,但不確定它們是否存在。打開塊blob(如果存在)
此代碼執行2次往返於服務器 - 在Exists
一個HEAD和一個GET在OpenRead
:
CloudBlobContainer container = ... ;
Parallel.ForEach(... => {
string blobName = ... ;
var blob = container.GetBlockBlobReference(blobName);
if (blob.Exists()) {
using (var stream = blob.OpenRead()) {
...
}
}
});
... ...可能
- 打開BLOB
- 如果不存在則不會拋出異常
- 一次往返服務器
...?
難道你不能只打開它並捕捉異常? – 2014-10-11 12:27:50
在調試過程中(在這種情況下),在性能和煩人方面的例外是昂貴的。 – 2014-10-11 12:30:50
也許不是一種適用於您的解決方案,但您可以使用['DebuggerNonUserCode'](http://stackoverflow.com/questions/2738115/can-i-enable-disable-breaking-on-exceptions-programatically)屬性的代碼涉及臨時禁用中斷的例外。 – 2014-10-11 12:44:45