有一些问题,并不能得出它为什么出现。 我正在使用.net 4.5/C#,并尝试在异步函数成功后将Content设置为ContentControl。 我想要在程序的那部分中的主要焦点是在自己的WPF加载动画(Usercontrol IsLoading)和PDF内容(Usercontrol PDFDokument)之间切换。 PDF是内部加载&在“PDFDokument”内部呈现并且已经很好地工作。 如果需要更多信息,欢迎提问。 因为你知道我会说我仍处于开发的初级阶段。 (三年:)第一个))使用异步/等待,UI设置内容后冻结
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); });
}
我试过不同的方式使用异步加载,但没有解决这个问题。
希望有人知道如何解决:)
非常感谢!
如果在调试器冻结时暂停调试器,您会看到什么调用堆栈? – SLaks
为了获得调用堆栈,我插入了一个stacktrace&stackframe对象以在foreach循环中使用stackframe.getmethod()。name。如果我暂停调试器完全循环再后,我拿到调用堆栈的一个长长的清单,说 MoveNext的 InvokeMoveNext RunInternal 运行 运行 <.cctor> b__3 InternalRealCall ...... 主要 _nExecuteAssembly nExecuteAssembly 运行 ExecuteAsAssembly 的CreateInstance 的CreateInstance 的CreateInstance RunUsersAssemblyDebugInZone ThreadStart_Context RunInternal 运行 运行 ThreadStart“ – Daniel
当我恢复程序(或正常启动)时,由于IOException异常”由另一个线程控制Acess,因为它是内置的“而退出(就像@Xtudio在他的答案中所述,但今天是我第一次得到这个例外) – Daniel