Я хотел, чтобы какой-нибудь код выполнялся до выхода из моей программы, поэтому я подумал, что редактирование в 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");
...
«До» был единственным напечатанным выводом.
Из того, что я прочитал, должны вернуться функции Application.Run. Я в растерянности. Будем благодарны за любые объяснения.
Это смешанная программа на C ++ / CLR + C # + C, но основная часть - C #.
Я надеюсь получить объяснение того, что не происходит, а не предложения о том, как выполнить те же функции. Я могу обойти это в большинстве случаев, но то, что мне показалось самым чистым, легким для понимания и правильным способом сделать так, чтобы это вообще не работало, меня смущает.