【发布时间】:2016-06-24 17:01:22
【问题描述】:
我想在函数中添加加载表单
private async void Test()
{
// 1, show loading form
await DoTest();
//2, close loading form
}
加载窗体需要阻塞主窗体,一开始我尝试运行窗体ShowDialog(),但它会停止以下功能
最好的办法是什么?
我的最终解决方案:
private async void Test()
{
// 1, show loading form
var loadingScreen = new LoadingForm();
Task.Factory.StartNew(delegate
{
Invoke((Action)delegate
{
loadingScreen.ShowDialog(App.Views.Forms.RobotActiveView);
});
});
await DoTest();
//2, close loading form
Invoke((Action)delegate
{
loadingScreen.Close();
});
}
【问题讨论】:
-
加载表单的重点是防止用户交互吗?
-
@AlexW 是的,作为下载功能,加载数据等等……
-
@CodyGray 在启动应用程序时不显示启动画面。用于等待“BIG”功能的加载屏幕
-
@CodyGray 这不是重复案例......
标签: c# .net winforms async-await