0

有没有办法在后台线程中显示表单,但您总是可以在 UI 线程前面看到它是无模式的?

例如 UI 线程使用 parentForm 运行,并且有一个 backgroundworker 线程使用 childForm 在顶部运行。我可以在无模式的顶部使用 parentForm 和 childForm,这意味着我总是可以看到我的 childForm 但不会阻止我的 parentForm。

似乎 childForm.ShowDialog(parentForm) 会阻塞 UI 线程,我不想在 UI 线程中调用 childForm。

4

1 回答 1

1

我不确定你是什么意思,但Show()如果你想在不阻塞主 UI 的情况下显示表单,你总是可以尝试在特定表单中运行

例子

Form2 _Form2 = new Form2();
_Form2.Show();

或者,如果您想异步运行一个新表单作为应用程序的主表单,您可以尝试创建一个新Thread表单并在其中运行该表单

例子

public void RunThread()
{
    Thread thread = new Thread(new ThreadStart(RunForm)); //Create a new thread to execute RunForm()
    thread.Name = "NewForm"; //Name the new thread (Not required)
    thread.Start(); //Start executing RunForm() in the new thread
}

public void RunForm()
{
    try
    {
        Application.Run(new Form2()); //Run Form2() as the main form of the application
    }
    catch (Exception ex)
    {
        //DoSomething
        //MessageBox.Show(ex.Message);       
    }
}

谢谢,
我希望你觉得这有帮助:)

于 2012-10-31T04:40:20.127 回答