我正在使用Visual Studio 2013来创建winform。我可以构建并运行表单。但是,偶尔,当表单执行任务时,我再也看不到它了。也就是说,我在任务栏中看到它,如果我将鼠标悬停在其图标上,我可以预览它,但点击该图标并不会显示该表单。我也无法通过alt-tab访问它。当表单完成任务后,它会弹回。
我不确定这是否相关,但是当我尝试调试表单时会发生相同的行为。我可以运行并附加它,但是当我单击表单上的按钮时,整个表单都会消失。一旦调试会话完成,它就会回来。
答案 0 :(得分:0)
如果您的任务在方法内部,请在下面调用它,它不会冻结UI。要运行您的任务,只需致电BeginProcessingAsync(d);
。
private async void BeginProcessingAsync(Data d)
{
//Execute the long running task asynchronously
await Task.Run(() => yourMethod(d));
//Anything after the await line will be executed only after the task is finished.
DoSomethingWithFinishedData(d);
}
此外,请注意:如果您使用的是较新版本的.NET,则可能必须使用await Task.Factory.StartNew(() => yourMethod(d));
而不是上述版本。