遇到了一些问题而且无法理解它出现的原因。 我正在使用.net 4.5 / C#,我尝试在异步功能成功后将Content设置为ContentControl。 我希望在该程序的该部分中的主要焦点是在自己的WPF加载动画(Usercontrol IsLoading)和PDF内容(Usercontrol PDFDokument)之间切换。 PDF是内部加载的&在“PDFDokument”内部呈现并且已经很好地工作。 如果需要更多信息,欢迎提出每一个问题。 你知道我会说我还处于发展的初级水平。 (三年中的第一个:))
public ucPDFDocument PDFDokument = new ucPDFDocument();
public ucLoading IsLoading = new ucLoading();
protected async void lstSuchergebnis_DoubleClickItem(object sender, MouseButtonEventArgs e)
{
var tempAkte = ((ListViewItem)sender).Content as Akten;
tbctrlResultPanel.SelectedIndex = 1;
PDFDokument.IsDataChangeAllowed(false);
contSwapControls.Content = IsLoading;
await PDF(tempAkte);
contSwapControls.Content = PDFDokument; **<-- after executing this line, the ui freezes**
}
private Task PDF(Akten paramAkte)
{
Akten _tempAkte = paramAkte;
return Task.Run(() => { PDFDokument.LoadPDFDokument(_tempAkte.akt_ID, ref _DaKsManger); });
}
我尝试了使用异步加载的不同方法,但没有解决这个问题。
希望有人知道如何解决这个问题:)
非常感谢!!!
答案 0 :(得分:1)
唯一的异步是PDF(...)
,你等待。设置内容不是以异步方式执行的。您正在设置的内容发生在UI线程上。 (这是唯一的方法,因为你正在修改UI,这只能在它创建的线程上发生)