/// </summary>
/// <param name="fs">IStreamReaderオブジェクト</param>
/// <param name="tokenSource">キャンセルトークン</param>
+ /// <param name="file_size">ファイルサイズ。-1を指定しても動作しますが、読み取りが遅くなります</param>
/// <returns>Taskオブジェクト</returns>
/// <remarks>
/// 読み取り操作は別スレッドで行われます。
/// また、非同期操作中はこのメソッドを実行することはできません。
/// </remarks>
- public async Task LoadAsync(TextReader fs, CancellationTokenSource tokenSource = null)
+ public async Task LoadAsync(TextReader fs, CancellationTokenSource tokenSource = null, int file_size = -1)
{
if (fs.Peek() == -1)
return;
try
{
this.Clear();
+ if (file_size > 0)
+ this.buffer.Allocate(file_size);
await this.buffer.LoadAsync(fs, tokenSource);
}
finally