当前位置: 首页>>代码示例>>C#>>正文


C# BufferedStream.CopyToAsync方法代码示例

本文整理汇总了C#中BufferedStream.CopyToAsync方法的典型用法代码示例。如果您正苦于以下问题:C# BufferedStream.CopyToAsync方法的具体用法?C# BufferedStream.CopyToAsync怎么用?C# BufferedStream.CopyToAsync使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在BufferedStream的用法示例。


在下文中一共展示了BufferedStream.CopyToAsync方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: CopyToAsyncTest_RequiresAsyncFlushingOfWrites

        public async Task CopyToAsyncTest_RequiresAsyncFlushingOfWrites()
        {
            byte[] data = Enumerable.Range(0, 1000).Select(i => (byte)(i % 256)).ToArray();

            var manualReleaseStream = new ManuallyReleaseAsyncOperationsStream();
            var src = new BufferedStream(manualReleaseStream);
            src.Write(data, 0, data.Length);
            src.Position = 0;

            var dst = new MemoryStream();

            data[0] = 42;
            src.WriteByte(42);
            dst.WriteByte(42);

            Task copyTask = src.CopyToAsync(dst);
            manualReleaseStream.Release();
            await copyTask;

            Assert.Equal(data, dst.ToArray());
        }
开发者ID:dotnet,项目名称:corefx,代码行数:21,代码来源:BufferedStreamTests.cs

示例2: CopyToAsyncTest_ReadBeforeCopy_CopiesAllData

        public async Task CopyToAsyncTest_ReadBeforeCopy_CopiesAllData(bool wrappedStreamCanSeek)
        {
            byte[] data = Enumerable.Range(0, 1000).Select(i => (byte)(i % 256)).ToArray();

            var wrapped = new ManuallyReleaseAsyncOperationsStream();
            wrapped.Release();
            wrapped.Write(data, 0, data.Length);
            wrapped.Position = 0;
            wrapped.SetCanSeek(wrappedStreamCanSeek);
            var src = new BufferedStream(wrapped, 100);

            src.ReadByte();

            var dst = new MemoryStream();
            await src.CopyToAsync(dst);

            var expected = new byte[data.Length - 1];
            Array.Copy(data, 1, expected, 0, expected.Length);
            Assert.Equal(expected, dst.ToArray());
        }
开发者ID:dotnet,项目名称:corefx,代码行数:20,代码来源:BufferedStreamTests.cs

示例3: CopyToAsync_InvalidArguments_Throws

        public void CopyToAsync_InvalidArguments_Throws()
        {
            using (var s = new BufferedStream(new MemoryStream()))
            {
                // Null destination
                Assert.Throws<ArgumentNullException>("destination", () => { s.CopyToAsync(null); });

                // Buffer size out-of-range
                Assert.Throws<ArgumentOutOfRangeException>("bufferSize", () => { s.CopyToAsync(new MemoryStream(), 0); });
                Assert.Throws<ArgumentOutOfRangeException>("bufferSize", () => { s.CopyToAsync(new MemoryStream(), -1, CancellationToken.None); });

                // Copying to non-writable stream
                Assert.Throws<NotSupportedException>(() => { s.CopyToAsync(new WrappedMemoryStream(canRead: true, canWrite: false, canSeek: true)); });

                // Copying to a non-writable and non-readable stream
                Assert.Throws<ObjectDisposedException>(() => { s.CopyToAsync(new WrappedMemoryStream(canRead: false, canWrite: false, canSeek: false)); });

                // Copying after disposing the buffer stream
                s.Dispose();
                Assert.Throws<ObjectDisposedException>(() => { s.CopyToAsync(new MemoryStream()); });
            }

            // Copying after disposing the underlying stream
            using (var ms = new MemoryStream())
            using (var s = new BufferedStream(ms))
            {
                ms.Dispose();
                Assert.Throws<ObjectDisposedException>(() => { s.CopyToAsync(new MemoryStream()); });
            }

            // Copying from a non-readable source
            using (var s = new BufferedStream(new WrappedMemoryStream(canRead: false, canWrite: true, canSeek: true)))
            {
                Assert.Throws<NotSupportedException>(() => { s.CopyToAsync(new MemoryStream()); });
            }
        }
开发者ID:geoffkizer,项目名称:corefx,代码行数:36,代码来源:BufferedStream.InvalidParameters.cs


注:本文中的BufferedStream.CopyToAsync方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。