有人可以解釋爲什麼SecondTask和加載事件不更新給定此代碼的用戶界面?Task.Run代碼不執行
public Task First()
{
return Task.Run(
() =>
{
Task.Delay(4000);
Dispatcher.Invoke(() =>
{
Title = "From First()";
});
});
}
public Task Second()
{
return Task.Run(
() =>
{
Task.Delay(5000);
Dispatcher.Invoke(() =>
{
Title = "From Second()";
});
Task.WaitAny(First());
});
}
private void ParentWindow_Loaded(object sender, RoutedEventArgs e)
{
Second();
Title = "From Event";
}
當我運行這段代碼時,由於調用First(),只有窗體標題只改變一次。 沒有別的東西被執行(至少從我所看到的,我可以看到達到的斷點)。 我也嘗試使用Task.WhenAny(First());
而不是Task.WaitAny(First());
那麼,你是否設置了一些斷點,然後通過調試器來查看發生了什麼? – mason
已達到斷點,標題永不改變傳遞給First() – user3373870
您在第二次完成後調用First,因此您會看到First –