我想让用户在用户可以做某事之前等待5秒但由于我不想做Thread.Sleep(5000);
因为我希望加载表单而遇到问题以及可以查看的功能,但我不想让用户在5秒钟内做任何事情(他们可以尝试点击按钮,但不会发生任何事情)。
由于回答者的缘故,我做了多少工作(由于属性,我的代码略有不同):
var t = Task.Delay(1000) //1 second/1000 ms
t.Wait();
答案 0 :(得分:8)
你可以随时禁用所有表格,并在5秒后启用它......
(使用.net framework 4.5的例子)
//Your window Constructor
public MyWindow()
{
InitializeComponent();
this.Cursor = Cursors.WaitCursor;
this.Enabled = false;
WaitSomeTime();
//load stuff
.....
}
public async void WaitSomeTime()
{
await Task.Delay(5000);
this.Enabled = true;
this.Cursor = Cursors.Default;
}
答案 1 :(得分:1)
听起来你想要一个在5秒后被解雇的闪屏。
网上有很多资源显示创建WinForms启动画面的方法(这听起来并不容易),包括
http://mrbool.com/how-to-make-a-splash-screen-in-csharp/26598
您可以让计时器在5秒钟后完成加载完成后通知启动画面。
答案 2 :(得分:0)
让你的构造函数调用后台工作者,并在工作完成事件中加载你的主窗体。