13,038
回編集
(→使用例) |
|||
| 128行目: | 128行目: | ||
<br> | <br> | ||
<syntaxhighlight lang="c#"> | <syntaxhighlight lang="c#"> | ||
// 同期処理 | |||
using System; | using System; | ||
using System.Text; | using System.Text; | ||
| 168行目: | 170行目: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
以下の例では、上記の例を非同期で行っている。<br> | |||
非同期処理は、I/O操作が頻繁に行われる場合、または、ユーザインターフェースの応答性を維持する必要がある場合に特に有効である。<br> | |||
<br> | |||
<syntaxhighlight lang="c#"> | |||
// 非同期処理 | |||
using System; | |||
using System.Text; | |||
using System.IO; | |||
using System.Threading.Tasks; | |||
class CSVParser | |||
{ | |||
static async Task Main() | |||
{ | |||
string outputFile = "sample.txt"; | |||
await WriteCSVAsync(outputFile); | |||
} | |||
static async Task WriteCSVAsync(string outputFile) | |||
{ | |||
try | |||
{ | |||
using (StreamWriter writer = new StreamWriter(outputFile, false, Encoding.GetEncoding("Shift_JIS"))) | |||
{ | |||
// ヘッダ行を書き込む | |||
await writer.WriteLineAsync("列1,列2,列3"); | |||
// レコード行を書き込む | |||
await writer.WriteLineAsync("値1,値2,値3"); | |||
await writer.WriteLineAsync("値4,\"値5,カンマを含む\",値6"); | |||
await writer.WriteLineAsync("値7,値8,\"値9\n改行を含む\""); | |||
} | |||
} | |||
catch (Exception ex) | |||
{ | |||
Console.WriteLine("書き込みエラー: " + ex.Message); | |||
} | |||
} | |||
} | |||
</syntaxhighlight> | |||
<br> | |||
==== CSVファイルの書き込み ==== | ==== CSVファイルの書き込み ==== | ||
===== 使用例 ===== | ===== 使用例 ===== | ||