Complete,\r
}\r
/// <summary>\r
- /// 非同期操作の状態を表す\r
- /// </summary>\r
- public enum AsyncState\r
- {\r
- /// <summary>\r
- /// 非同期操作は行われていないことを表す\r
- /// </summary>\r
- None,\r
- /// <summary>\r
- /// 読み出し中であることを表す\r
- /// </summary>\r
- Loading,\r
- /// <summary>\r
- /// 書き込み中であることを表す\r
- /// </summary>\r
- Saving\r
- }\r
- /// <summary>\r
/// 進行状況を表すためのイベントデータ\r
/// </summary>\r
public sealed class ProgressEventArgs : EventArgs\r
}\r
\r
/// <summary>\r
- /// 非同期操作の状態を表す\r
- /// </summary>\r
- public AsyncState State\r
- {\r
- get;\r
- internal set;\r
- }\r
-\r
- /// <summary>\r
/// 文字列の長さ\r
/// </summary>\r
public int Length\r
/// <remarks>読み出し操作中はこのメソッドを実行することはできません</remarks>\r
public void Replace(int index, int length, string s)\r
{\r
- if (this.State == AsyncState.Loading)\r
- throw new InvalidOperationException();\r
if (index < 0 || index > this.buffer.Length || index + length > this.buffer.Length || length < 0)\r
throw new ArgumentOutOfRangeException();\r
if (length == 0 && (s == string.Empty || s == null))\r
/// <remarks>非同期操作中はこのメソッドを実行することはできません</remarks>\r
public void Clear()\r
{\r
- if (this.State == AsyncState.Loading)\r
- throw new InvalidOperationException();\r
this.buffer.Clear();\r
}\r
\r
/// <remarks>見つかったパターン以外を置き換えた場合、正常に動作しないことがあります</remarks>\r
public IEnumerator<SearchResult> Find(int start, int length)\r
{\r
- if (this.State == AsyncState.Loading)\r
- throw new InvalidOperationException();\r
if (this.regex == null)\r
throw new InvalidOperationException();\r
if (start < 0 || start >= this.Length)\r