本文整理汇总了C#中ICloudBlob.EndOpenRead方法的典型用法代码示例。如果您正苦于以下问题:C# ICloudBlob.EndOpenRead方法的具体用法?C# ICloudBlob.EndOpenRead怎么用?C# ICloudBlob.EndOpenRead使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ICloudBlob
的用法示例。
在下文中一共展示了ICloudBlob.EndOpenRead方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BlobReadStreamReadSizeTestAPM
private void BlobReadStreamReadSizeTestAPM(ICloudBlob blob)
{
IAsyncResult result;
using (AutoResetEvent waitHandle = new AutoResetEvent(false))
{
byte[] buffer = GetRandomBuffer(5 * 1024 * 1024);
using (MemoryStream wholeBlob = new MemoryStream(buffer))
{
result = blob.BeginUploadFromStream(wholeBlob,
ar => waitHandle.Set(),
null);
waitHandle.WaitOne();
blob.EndUploadFromStream(result);
}
TestHelper.ExpectedException<ArgumentOutOfRangeException>(
() => blob.StreamMinimumReadSizeInBytes = 16 * 1024 - 1,
"StreamMinimumReadSizeInBytes should not accept values smaller than 16KB");
blob.StreamMinimumReadSizeInBytes = 4 * 1024 * 1024 + 1;
BlobRequestOptions options = new BlobRequestOptions() { UseTransactionalMD5 = true };
result = blob.BeginOpenRead(null, options, null,
ar => waitHandle.Set(),
null);
waitHandle.WaitOne();
TestHelper.ExpectedException<ArgumentOutOfRangeException>(
() => blob.EndOpenRead(result),
"StreamMinimumReadSizeInBytes should be smaller than 4MB if UseTransactionalMD5 is true");
string range = null;
OperationContext context = new OperationContext();
context.SendingRequest += (sender, e) => range = range ?? e.Request.Headers["x-ms-range"];
blob.StreamMinimumReadSizeInBytes = 4 * 1024 * 1024;
result = blob.BeginOpenRead(null, options, context,
ar => waitHandle.Set(),
null);
waitHandle.WaitOne();
using (Stream blobStream = blob.EndOpenRead(result))
{
blobStream.ReadByte();
Assert.AreEqual("bytes=0-" + (blob.StreamMinimumReadSizeInBytes - 1).ToString(), range);
range = null;
}
blob.StreamMinimumReadSizeInBytes = 6 * 1024 * 1024;
options.UseTransactionalMD5 = false;
result = blob.BeginOpenRead(null, options, context,
ar => waitHandle.Set(),
null);
waitHandle.WaitOne();
using (Stream blobStream = blob.EndOpenRead(result))
{
blobStream.ReadByte();
Assert.AreEqual("bytes=0-" + (buffer.Length - 1).ToString(), range);
range = null;
}
blob.StreamMinimumReadSizeInBytes = 16 * 1024;
result = blob.BeginOpenRead(null, options, context,
ar => waitHandle.Set(),
null);
waitHandle.WaitOne();
using (Stream blobStream = blob.EndOpenRead(result))
{
blobStream.ReadByte();
Assert.AreEqual("bytes=0-" + (blob.StreamMinimumReadSizeInBytes - 1).ToString(), range);
range = null;
}
}
}