投稿者 みどりこぶた  (高校生) 投稿日時 2017/12/7 11:55:39
すみません、解決マーク付け忘れていました。解答いただけたのでもう少し未解決にしておきます汗。

shuさん解答ありがとうございます。
ただ、やはりピンときません。。。
仮にファイルの書き込みを行っていたとしても、TryCatchで括ってFinally句に開放処理を書いておけば大丈夫な気がします…。
また、仮にファイルをロックしたままApplication.Exit()したり、タスクマネージャーから強制終了しても、ロックは解放されるようなのですが、なぜなのでしょうか。

書き忘れたのですが、vs2017の WindowsFormアプリケーションで書いてます。
だからでしょうか…?Win32アプリケーションなど、他の言語だとメモリリーク?みたいのが起きたりするということなのでしょうか??
整合性が取れたオブジェクト、という言う意味がもう分かってません。例えば壊れたオブジェクトがあるとどういう問題が起きるのでしょうか…?

また、仮にそうなのでしたら、WindowsFormアプリケーションはどういう仕組で、その安全性を保証しているのでしょうか…?
また、スレッドの強制終了が良くない、と言われるとちょっと引っかかることがあります。スマホのホームボタンだったり、全てのアプリ終了 みたいな処理なんかはどうなってるんでしょう…。やはり定期的にフラグのようなものをチェックして、各アプリの終了処理が完了するのを待っているのでしょうか。(仕組みから何まで別物だと思いますが…)

幼い疑問、また脱線した質問ですみません。専門的でなくてもイメージ掴めればいいなと思い、思い切って返信してみました。
もしお時間有りましたら、ご享受ください。