public void OpenUpForm(object sender, EventArgs e)
{
if (forms.Count == numberoftimes)
{
forms.ForEach(f =>
{
f.Close();
f.Dispose();
});
forms.Clear();
//Need Delay Here
return;
}
forms.Add(new Form1());
forms.Last().Show();
}
您好我有这个代码,我需要在forms.Clear();
之后添加延迟但是我不知道编码我想不出来。
我尝试过使用Task.Delay
和Thread.Sleep
,但它会锁定我的用户界面。是否可以添加延迟剂量锁定应用程序?谢谢。
答案 0 :(得分:3)
您可以将方法标记为异步并使用此方法:
await Task.Delay(2000);
不会阻止ui线程
public async void OpenUpForm(object sender, EventArgs e)
{
if (forms.Count == numberoftimes)
{
forms.ForEach(f =>
{
f.Close();
f.Dispose();
});
forms.Clear();
await Task.Delay(2000);
return;
}
forms.Add(new Form1());
forms.Last().Show();
}
这将表现得如此。