Последующий вопрос от Что такое «корневая ссылка»?
рассмотрим этот код для стандартного приложения windows в c #:
Program.cs:
[STAThread]
static void Main()
{
try
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
finally
{
MessageBox.Show("Bye !");
}
}
From1.cs:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.Click += new EventHandler(Form1_Click);
}
void Form1_Click(object sender, EventArgs e)
{
Application.Exit();
}
}
Что заставляет эту форму оставаться в качестве корневого источника?
Это из-за метода Static Main, наверное,
или это что-то еще?
Если я просто закрою форму с помощью X, то в окне сообщения появится «пока»,
но не если я нажму на него. (из-за application.Exit ()) - и я думаю
это странно, если рассмотреть метод finally в main.
Итак, главный вопрос: что делает объект формы, оставаясь в качестве корневого источника, чтобы сборщик мусора не убил его?