我无法从任务栏

时间:2015-07-20 18:41:22

标签: c# winforms

我正在使用Visual Studio 2013来创建winform。我可以构建并运行表单。但是,偶尔,当表单执行任务时,我再也看不到它了。也就是说,我在任务栏中看到它,如果我将鼠标悬停在其图标上,我可以预览它,但点击该图标并不会显示该表单。我也无法通过alt-tab访问它。当表单完成任务后,它会弹回。

我不确定这是否相关,但是当我尝试调试表单时会发生相同的行为。我可以运行并附加它,但是当我单击表单上的按钮时,整个表单都会消失。一旦调试会话完成,它就会回来。

1 个答案:

答案 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));而不是上述版本。