线程和任务

时间:2014-10-18 11:32:42

标签: c# multithreading forms task

我正在尝试使用线程和任务打开新窗体,但是这段代码打开了新窗口,但是没有显示按钮,文本字段等(表单正在加载)

private void newFomrm_Click(object sender, EventArgs e)
{
    NewForm a = new NewForm(param); // my Form
    Action showMethod = () => {  a.Show(); };
    Task t1 = new Task(showMethod);
    Thread t = new Thread(new ThreadStart(t1.Start));
    t.Start(); 
}

1 个答案:

答案 0 :(得分:0)

private void button1_Click(object sender, EventArgs e)
    {
        NewForm a = new NewForm(); // my Form
        Action showMethod = () => {
            Invoke(new Action(() => a.Show())); 
        };
        Task t1 = new Task(showMethod);
        Thread t = new Thread(new ThreadStart(t1.Start));
        t.Start(); 
    }

试试这个......你必须把UI操作放在主线程上