我需要生成一个Form
可以像往常一样使用的,但主线程必须继续做它之后所做的任何事情。当我尝试以下两种技术时,我无法使用该表单:
static class Program
{
private static void spawnForm1()
{
new Form1().Show();
}
private static void spawnForm2()
{
// solved: use ShowDialog() instead of Show() here
ThreadPool.QueueUserWorkItem(o => { new Form1().Show(); });
}
[STAThread]
static void Main()
{
spawnForm1();
MessageBox.Show("main thread continues");
// now anything can happen: background processing or start of main form
// sleeping is just an example for how the form is unresponsive
Thread.Sleep(30 * 1000);
}
}
那么如何生成一个简单的表单并在主线程中继续?它应该像消息框一样响应。
(我不能使用Application.Run(...);
,如果它会阻塞主线程,我也不能使用ShowDialog()
:对不起,我没有太多的声誉,但这不是一个菜鸟问题,我真的需要像我试过的那样产生它解释)