プログラムが終了する前にコードを実行したかったので、VSに編集するとProgram.csが次のように作成されたと思いました。
...
try
{
Application.Run(new main_form);
}
finally
{
special_shutdown_code();
}
...
トリックspecial_shutdown_code()
はできますが、メインフォームの右上隅にある[x]をクリックしても実行されません。私は戻って、印刷ステートメントを追加しました:
...
try
{
System.Console.WriteLine("Before");
Application.Run(new main_form);
System.Console.WriteLine("After");
}
finally
{
System.Console.WriteLine("finally");
special_shutdown_code();
}
System.Console.WriteLine("post-finally");
...
「Before」が印刷された唯一の出力でした。
私が読んだものから、Application.Run関数が返されるはずです。私は途方に暮れています。説明をいただければ幸いです。
これはC++/ CLR + C#+ C混合プログラムですが、主要部分はC#です。
同じ機能を実現する方法の提案ではなく、何が起こっていないのかについての説明を得たいと思っています。私はほとんどの場合これを回避することができますが、最もクリーンで理解しやすいように見え、それを行う正しい方法がまったく機能しないと私は混乱します。