OSDN Git Service

ファイルロードを高速化した
[fooeditengine/FooEditEngine.git] / Core / Document.cs
index 67fcf1f..da7b6b0 100644 (file)
@@ -1124,12 +1124,13 @@ namespace FooEditEngine
         /// </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;
@@ -1140,6 +1141,8 @@ namespace FooEditEngine
             try
             {
                 this.Clear();
+                if (file_size > 0)
+                    this.buffer.Allocate(file_size);
                 await this.buffer.LoadAsync(fs, tokenSource);
             }
             finally