C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
掲示板トップ
C# と VB.NET のサンプル
新規作成
利用方法/規約
ツリー表示
トピック表示
ランキング
記事検索
過去ログ
■103934
/ )
Re[5]: FormClosingでセーブするが稀に最後まで書込まれない
□投稿者/ Azulean
(1回)-(2026/05/13(Wed) 22:06:54)
2026/05/14(Thu) 07:24:31 編集(投稿者)
直接の回答ではありません。
・FormClosing はキャンセル確認をするためのタイミングであり、終了は確定していない。
→たとえば、Windowsシャットダウンの場合、FormClosingの後、他のアプリでシャットダウンをキャンセルしたら、「閉じません」(FormClosedが発生しない)。
・Windows Vista 以降では、FormClosing/FormClosed で長時間の処理をすることは非推奨になっています。
→終了時に時間のかかる仕様・設計を避けるべきだと Microsoft は言っています。
・シャットダウン契機で発せられる FormClosing は 5 秒以内の完了が求められるはず。(超過した場合は、シャットダウンを妨げていますと出るなど、正常終了されない可能性もある)
https://learn.microsoft.com/ja-jp/windows/win32/shutdown/wm-queryendsession#remarks
(参考)
https://learn.microsoft.com/ja-jp/windows/win32/shutdown/shutting-down
> アプリケーションでは、データと状態を頻繁に保存することをお勧めします。たとえば、ユーザーが開始した保存操作の間にデータを自動的に保存して、シャットダウン時に保存するデータの量を減らします。
このような状況にあるため、FormClosing で長時間かかるというシナリオ自体を避けることが多く、どうして起こるのか? どうしたら軽減できるのか? の知見は少ないかもしれません。
返信
編集キー/
編集
管理者用
-
Child Tree
-