怎么优先响应线程里的对话框

如何优先响应线程里的对话框?
Thread myth = new Thread(new ParameterizedThreadStart(runpro));
myth.Start(this);
        public void runpro(object obj)
        {
            ((Form1)obj).test();
        }
    public void test()//Form1的成员函数 
    {
        MessageBox.Show("1");
    }



我在线程里调用了Form1对一个成员函数test,里面弹出对话框,我想此时阻塞其它所有线程,必须让用户点击确定才能返回主界面 应该怎么做
------解决思路----------------------
基本上,这是传统的“顺序程序思维”在作怪。而.net的await语法有更是容易误导了一些人、编写出性能恶劣的“所谓多线程”程序。

在设计上,当你进行多线程开发时,你的后续任务应该由子线程的回调触发。这是连 javascript 程序员都已经习惯了的程序设计风格。你的主线程该干什么还去干什么,而你这里能够想到要干的事情,不是主线程去干,而是注册为子线程的回调委托来完成。
------解决思路----------------------
test方法改成:

public void test()//Form1的成员函数 
{
    if (this.InvokeRequired)
    {
        this.Invoke((Action)delegate { test(); });
        return;
    }
    MessageBox.Show("1");
}