繁体   English   中英

如何从form1打开form2(从异步任务)

[英]How to open form2 from form1 (from async task)

我正在尝试从form1中的异步任务打开form2。 当我尝试使用以下方式打开它时:

public void DoWorkPollingTask()
{
    Form f2 = new Form2();
    Task.Run(async () =>
            {
                while (true)
                {
                    f2.Show();

                    await Task.Delay(10000);
                }
            });
}

它告诉我这个: 在此输入图像描述

请不要对此Internet连接错误感到困惑。 它不是来自visual studio的实际弹出窗口,它只是我的form2,但问题是,它没有完全加载,因为你可以在该图像上看到。 它应该如下所示: 在此输入图像描述

有没有什么办法可以从每x秒运行一次的任务计时器任务中显示form2?

您正在尝试从非UI线程访问UI元素,这意味着会导致很多问题。

只是不要使用线程池线程,因为这里没有理由这样做。

public async void DoWorkPollingTask()
{
    Form f2 = new Form2();
    while (true)
    {
        f2.Show();

        await Task.Delay(10000);
    }
}

有没有什么办法可以从每x秒运行一次的任务计时器任务中显示form2?

如果您愿意,可以使用实际计时器。 代码已经非常简单,但如果您只是喜欢使用计时器,那么请使用计时器。 只需确保使用设计用于UI框架的计时器,而不是系统计时器之一,以便它将在UI线程中触发事件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM