|
|
1
8
现在,我需要稍后检查这个问题,但是我确信有一个方法告诉线程等待它准备好输入。您只监视GUI进程吗? 不是 Process.WaitForInputIdle 有什么帮助吗?或者我错过了要点?:) 更新在twitter上聊天(或tweet tweet?)有了门德尔特,我想我应该更新我的答案,这样社区才能充分意识到……
希望有帮助:) |
|
|
2
4
我认为增强对响应进程的检查可能会更好,这样您只会在响应属性返回false超过5秒(例如)时尝试停止/终止进程。 我认为您可能会发现,应用程序在进行更密集的处理时,可能会在一瞬间“没有响应”。 我相信一个更宽松的方法会更好地工作,允许一个过程在短时间内“不响应”,只有在它重复“不响应”几秒钟(或你想要的时间)时才采取行动。 进一步注意:Microsoft文档指出响应属性专门与用户界面相关,这就是为什么新启动的进程的UI可能没有立即响应的原因。 |
|
|
3
3
谢谢你的回答。这个
似乎解决了问题。这仍然很奇怪,因为响应和waitForInputIdle都应该在封面下使用相同的win32 api调用。
更多背景信息
我得潜入反射镜看看我能不能理解这一点。
更新
我检查了反射镜,这是什么反应下的封面。如果您过早地获得了主窗口句柄,那么您可能会得到错误的主窗口句柄,并且它在进程的剩余生命周期内或直到您调用refresh()时使用了错误的主窗口句柄;
更新
|
|
|
4
1
我也注意到在两年前的一个项目中。我在请求某些属性值之前调用了.refresh()。当我需要调用.refresh()时,这是一种反复尝试的方法。 |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |