Table of Contents

Class OdfDoubleBufferedWritableStream

Namespace
OdfKit.Core
Assembly
OdfKit.dll

Provides a write-only double-buffered stream that overlaps caller writes with asynchronous flushing. 提供唯寫雙緩衝資料流,讓呼叫端寫入與非同步刷寫彼此重疊。

public sealed class OdfDoubleBufferedWritableStream : Stream, IDisposable, IAsyncDisposable
Inheritance
OdfDoubleBufferedWritableStream
Implements
Inherited Members

Constructors

OdfDoubleBufferedWritableStream(Stream)

Short overload of OdfDoubleBufferedWritableStream that accepts underlyingStream; remaining optional parameters use defaults and forward to the full overload. 便利多載:提供 underlyingStream;其餘可選參數使用預設值並轉呼叫最長 OdfDoubleBufferedWritableStream 多載。

public OdfDoubleBufferedWritableStream(Stream underlyingStream)

Parameters

underlyingStream Stream

OdfDoubleBufferedWritableStream(Stream, int)

Short overload of OdfDoubleBufferedWritableStream that accepts underlyingStream and bufferSize; remaining optional parameters use defaults and forward to the full overload. 便利多載:提供 underlyingStream 與 bufferSize;其餘可選參數使用預設值並轉呼叫最長 OdfDoubleBufferedWritableStream 多載。

public OdfDoubleBufferedWritableStream(Stream underlyingStream, int bufferSize)

Parameters

underlyingStream Stream
bufferSize int

OdfDoubleBufferedWritableStream(Stream, int, bool)

Initializes a new instance of the OdfDoubleBufferedWritableStream class. 初始化 OdfDoubleBufferedWritableStream 類別的新執行個體。

public OdfDoubleBufferedWritableStream(Stream underlyingStream, int bufferSize, bool leaveOpen)

Parameters

underlyingStream Stream
bufferSize int
leaveOpen bool

Properties

CanRead

Provides the CanRead member. 提供 CanRead 成員。

public override bool CanRead { get; }

Property Value

bool

CanSeek

Provides the CanSeek member. 提供 CanSeek 成員。

public override bool CanSeek { get; }

Property Value

bool

CanWrite

Provides the CanWrite member. 提供 CanWrite 成員。

public override bool CanWrite { get; }

Property Value

bool

Length

Performs length. 執行 Length。

public override long Length { get; }

Property Value

long

Position

Gets or sets the stream position. 取得或設定資料流位置。

public override long Position { get; set; }

Property Value

long

Methods

Dispose(bool)

Releases unmanaged resources. 釋放非受控資源。

protected override void Dispose(bool disposing)

Parameters

disposing bool

Flush()

Performs flush. 執行 Flush。

public override void Flush()

FlushAsync(CancellationToken)

Performs flush async. 執行 Flush Async。

public override Task FlushAsync(CancellationToken cancellationToken)

Parameters

cancellationToken CancellationToken

Returns

Task

Read(byte[], int, int)

Performs the Read operation. 執行 Read 作業。

public override int Read(byte[] buffer, int offset, int count)

Parameters

buffer byte[]
offset int
count int

Returns

int

Seek(long, SeekOrigin)

Performs seek. 執行 Seek。

public override long Seek(long offset, SeekOrigin origin)

Parameters

offset long
origin SeekOrigin

Returns

long

SetLength(long)

Sets length. 設定 Length。

public override void SetLength(long value)

Parameters

value long

Write(byte[], int, int)

Performs the Write operation. 執行 Write 作業。

public override void Write(byte[] buffer, int offset, int count)

Parameters

buffer byte[]
offset int
count int

Remarks

Uses a fully synchronous path: buffered bytes are flushed with a direct synchronous write instead of blocking on the asynchronous pipeline. 採用純同步路徑:緩衝區滿時直接以同步寫入刷寫,不以阻塞等待非同步管線的方式偽裝同步。

WriteAsync(byte[], int, int, CancellationToken)

Writes async. 寫入 Async。

public override Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken)

Parameters

buffer byte[]
offset int
count int
cancellationToken CancellationToken

Returns

Task