如何在另一个表单任务中调用表单

时间:2019-03-24 10:55:16

标签: c# task begininvoke

在Windows窗体应用程序中,我创建了2个窗体。在表格1中,当我单击button1时,将开始一个新任务。在任务内部,我创建了form2的实例并显示form2。我正在调用showData的{​​{1}}方法。

Form2

1 个答案:

答案 0 :(得分:1)

正如肯尼建议的那样,我已经修改了代码。现在它按我的预期运行。

 public partial class Form1 : Form
    {

        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            Task.Factory.StartNew(() =>
            {
                Action act1 = (() =>
                {
                    Form2 form2 = new Form2();
                    form2.StartPosition = FormStartPosition.CenterParent;
                    form2.Show();
                });
                this.BeginInvoke(act1);
            });
        }
}

// FORM2

private void Form2_Load(object sender, EventArgs e)
        {
            test(1);
        }
        public void test(int a1)
        {
            Task.Factory.StartNew(() =>
            {
                for (int i = a1; i < 1000; i++)
                {
                    label1.Invoke(new MethodInvoker(delegate { label1.Text = i.ToString(); }));
                }
            });
        }

再次感谢肯尼