Я создаю приложение, которое использует .Net и Mono, оно использует многопоточные формы, поскольку я получаю плохой ответ от дочерних окон.
Я создал тестовую программу с 2 формами: первая (форма1) имеет одну кнопку (кнопка1), а вторая (форма2) пуста, фрагмент кода ниже.
void openForm()
{
Form2 form2 = new Form2();
form2.ShowDialog();
}
private void button1_Click(object sender, EventArgs e)
{
Thread x = new Thread(openForm);
x.IsBackground = true;
x.Start();
}
Этоотлично работает в .Net, но с Mono, первое окно не будет фокусироваться, когда вы щелкаете по нему (стандартное поведение .ShowDialog ()), а не .Show (), как .Net использует.
Когда я использую.Show (), на .Net и Mono окно просто мигает, а затем исчезает.Если я добавлю «MessageBox.Show ()» после «form2.Show ()», он останется открытым, пока вы не нажмете «ОК».
Я что-то упустил в этом коде или Mono просто не поддерживает это?(Я использую Mono 2.8.1)
Заранее спасибо, Адриан
РЕДАКТИРОВАТЬ: я понял, что я забыл 'x.IsBackground = true;'в приведенном выше коде, поэтому дочерние окна закроются с основным окном.