我正在尝试从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吗?
答案 0 :(得分:0)
您正在尝试从非UI线程访问UI元素,这将导致很多问题。
仅不要使用线程池线程,因为这里完全没有理由这样做。
public async void DoWorkPollingTask()
{
Form f2 = new Form2();
while (true)
{
f2.Show();
await Task.Delay(10000);
}
}
有什么办法可以使每隔x秒运行的任务计时器任务显示form2吗?
如果愿意,可以使用 actual 计时器。该代码已经非常简单,但是如果您只是喜欢使用计时器,请使用计时器。只需确保使用设计用于UI框架的计时器(而不是系统计时器之一),这样它将在UI线程中触发该事件。