C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■103927 / )  FormClosingでセーブするが稀に最後まで書込まれない
□投稿者/ Tom (1回)-(2026/05/05(Tue) 11:26:47)

分類:[C#] 

開発環境VisualStudio2022
実行環境Windows10

FormClosingイベントでデータをテキスト形式で保存しています。
その時、「稀に」最後まで書き込まれないときがあります。
イメージとしてはこんな感じ

 あいうえおかきくけこさしすせそたちつてと
 あいうえおかきくけこさしすせそたちつてと
 あいうえおかきくけこさしすせそたちつてと
 あいうえおかきくけこさしすせそ[EOF]

コードは単純で下記の感じです。
System.IO.StreamWriter st = new System.IO.StreamWriter(csvFileName, false, System.Text.Encoding.GetEncoding("Shift_JIS"));
for(int cnt=0;cnt<件数;cnt++){
st.Write("あいうえおかきくけこさしすせそたちつてと\r\n"); ←実際の書き込む内容は多いもので1行2000文字以上です。
}
st.Close();

ただ件数がいま50万行をこえており書き込みに数秒かかります。
メインフォームのFormClosingイベントがセーブのトリガーだから、もしかして最後まで書き終わる前にプロセスおわっちゃう?なんて思ったのですが、この50万件のデータを書き込む関数のあとに数十行のデータを書き込む関数を呼んでいるのですがそっちは何の問題もなく書き込まれていました。

賢者の方、原因と対策がお分かりの方、アドバイスいただけませんでしょうか?
返信 編集キー/


管理者用

- Child Tree -