【发布时间】:2016-09-23 19:42:30
【问题描述】:
你好。我有winforms应用程序。在应用程序中,我有输入表单。 A 想在单击确定按钮后模拟延迟。但代码正在运行,点击后表单立即关闭。请帮忙。
按钮已将 DialogResult 设置为 OK。我使用 ShowDialog 来显示表单。
//btn click handler
private async void btnOk_Click(object sender, EventArgs e)
{
customer.UserName = "testing";
await Task.Delay(30000);
//await Task.Run(()=> System.Threading.Thread.Sleep(30000)); //I tried this too
return;
}
【问题讨论】:
-
那么什么是关闭表单?您所展示的只是一个按钮单击处理程序...
-
@JonSkeet 我相信 DialogResult 会关闭表单。
-
对话框不会自行关闭。您没有显示其他一些代码正在执行此操作。除非您可以显示此代码,否则我们无法回答问题。如果您可以显示此代码,那么您可能可以自己回答问题。
-
您已经接受了答案,但希望您可以通过提供 minimal reproducible example 来了解如何避免混淆,我们可以自己运行以重现该问题。
-
@BeranekCZ:这取决于您是否想让人们更容易地帮助您,并使您的问题对未来的读者更有价值。就个人而言,出于对那些试图帮助你的人的尊重,以及让世界变得更美好的考虑,我会同时鼓励这两者。 (我不知道设置
DialogResult属性会产生这种效果。如果您提供了一个简短但完整的示例,我可以很容易地弄清楚发生了什么并为您提供帮助。“最低要求”和“使问题变得好的所有信息”。)
标签: c# winforms async-await