我有一个资源繁重的方法,需要几秒钟才能执行。因此,我决定在任务中调用它,以便在执行任务时显示等待图标。
我所做的称为imgLoading.Visibility = Visibility.Visible
创建任务之前,然后创建任务。任务完成后,我会调用imgLoading.Visibility = Visibility.Collapsed;
.
出于某种原因,图像永远不会崩溃并无限期地保持可见。这是一个非常奇怪的问题,很容易重现。这是我得到的所有代码,我真的看不出我做错了什么:
imgLoading.Visibility = Visibility.Visible;
var validityTask = Task.Factory.StartNew(() => ExpensiveMethod(param1,param2));
validityTask.ContinueWith((previousTask) =>
{
bool isvalid = validityTask.Result;
if (isvalid)
{
//Do something to UI
}
else
{
//DO something to UI
}
imgLoading.Visibility = Visibility.Collapsed;
}, TaskScheduler.FromCurrentSynchronizationContext());
如代码所示,我试图imgLoading
在执行任务时显示图像,并在任务完成时隐藏图标。使用此当前代码,即使在任务完成后图标仍然可见。
我究竟做错了什么?