|
|
1
4
在这个方法调用期间,您拥有一个锁吗?UI线程上的另一个方法正在尝试获取?这当然可以解释。 会发生这种事吗 每一个 时间?这显然会使诊断更容易。 对于我来说,这是不寻常的,我建议去调试器:只需点击break,看看线程在做什么。
最后,我知道你需要结果…但是如果你
做
呼叫
|
|
|
2
1
在您试图使用invoke时,UI线程是否正在对其他对象(可能是您的后台线程)进行阻塞调用?如果是这样,那么你的手上就有一个典型的死锁。两个线程,每个线程等待另一个线程返回。 在Windows窗体中,它们经常在幕后进行“消息泵送”,这通常是在您最不希望出现死锁的情况下进行的,但很多时候它会造成更多的问题,并且由于意外的可重入性,很难找到错误。 如果您不认为您的UI线程正在进行阻塞调用,那么应该在调试器中运行应用程序,并在死锁发生时闯入调试器。然后在线程窗口中查找主线程。双击主线程,然后查看调用堆栈窗口,查看主线程的位置。 您也可以尝试显式地指定发送程序的优先级,尽管我认为如果存在真正的死锁,这并不重要。 |
|
|
3
1
我最终找到了解决我问题的方法:我只需要在一个新线程上显示对话框,并使用它自己的调度程序。以下是修改后的代码:
|
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |
|
|
Barta · WPF MVVM不更新视图 1 年前 |
|
|
Denis Ivanov · WPF控件在属性更改时不会更新 1 年前 |
|
|
codymanix · WPF:TextBlock周围可见小边框? 1 年前 |
|
|
Nostromo · 来自背景对象的工具提示 1 年前 |
|
|
Nuvolari · 从可观测集合添加/删除时出现对象处理异常 1 年前 |
|
|
CCarter · 只能在设计器中DependencyObject的DependencyProperty上设置显示“Binding”的WPF ICommand DependencyProperties[重复] 1 年前 |
|
|
Thern · 在UI线程(WPF)上的void方法中调用异步函数 1 年前 |