在Application.Run之前显示表单

时间:2014-10-14 02:48:57

标签: c# winforms

我有一个静态方法,将窗体显示为对话框。并且可以从应用程序的任何位置调用该方法,例如从普通线程到UI线程。它的电话随处可见。此方法的另一个作用是,即使它进一步调用ShowDialog() Form,它也不会阻止调用。最后我得到了以下代码。

   public static void Method()
   {        // doesn't block the call
            ThreadStart threadStrart = delegate
            {
               DialogResult result = new FormTest().ShowDialog();
               //further code removed
            };
            Thread thread = new Thread(threadStrart) { IsBackground = false };
            thread.SetApartmentState(ApartmentState.STA);
            thread.Start();
    }

一切正常并且符合预期。但是在Application.Run之前调用此方法时会出现问题。然后它永远不会出现,直到Application.Run被调用。然而,在设计中可能的应用程序可能会在不调用Application.Run的情况下退出/关闭。因此,在这种情况下,用户将永远不会看到表单。

PS:那个表格不是主要形式。

0 个答案:

没有答案