У меня есть основной проект приложения Windows и другое приложение библиотеки классов. В приложении библиотеки классов у меня есть форма (созданная программно), которая отображается в проекте приложения основных окон после длительной работы.
Я хочу показать эту форму (в библиотеке классов) асинхронно.
Я написал этот код для основного проекта приложения:
Task t = Task.Factory.StartNew(delegate
{
if (this.InvokeRequired)
{
this.Invoke((Action)(() => textBox1.Text += "Enter Task"));
this.Invoke((Action)(() =>
{
ExternalAssembly.OpenForm of = new ExternalAssembly.OpenForm();
of.ShowWindow();
}));
}
this.Invoke((Action)(() => textBox1.Text = textBox1.Text + Environment.NewLine + "Exit Task"));
}, CancellationToken.None, TaskCreationOptions.None);
и в библиотеке классов:
public class OpenForm
{
public void ShowWindow()
{
Thread.Sleep(10000);
Form1 frm = new Form1();
frm.ShowDialog();
}
}
Но когда отображается форма в библиотеке классов, моя основная форма зависает. Как я могу изменить код, чтобы отображение формы в другой сборке было асинхронным?
Большое спасибо.