gpt4 book ai didi

java - 为什么 Display.asyncExec 或 Display.asyncExec 的 Object#wait 不是 "reasonable opportunity"?

转载 作者:行者123 更新时间:2023-12-02 00:18:47 25 4
gpt4 key购买 nike

我试图在阅读 Excel 文件时显示进度。我共享一个包含最大行号和最后读取的行号的对象。每 150 行,我将值保存在对象中,然后将其等待,然后停止读取,直到对象解锁。

在我的对话框窗口中,我尝试使用带有对象内值的syncExec或asyncExec方法来更新ProgressBar。调用该方法后,对象就会被解锁。

我知道这些方法正在等待最“合适”的时机来运行可运行对象。然而我似乎不明白的是,如果调用这些方法时没有任何东西在运行,为什么这些方法不会被执行?

我的实际情况是asyncExec仅在读取过程结束时更新ProgressBar,而synExec挂起应用程序,因为它在Object#wait运行时无法执行。

感谢您的阅读,更感谢您的回答。

最佳答案

当您的可运行对象到达事件循环队列的头部时,下一个合理的机会就会发生。当有可运行对象在其中等待时,事件循环始终运行。我怀疑您使事件循环的线程陷入僵局。

关于java - 为什么 Display.asyncExec 或 Display.asyncExec 的 Object#wait 不是 "reasonable opportunity"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11410213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com