在GUI中显示另一个线程的状态

用户名

我有一个GUI,并且GUI正在启动另一个线程(Java)。该线程正在启​​动正在爬网许多网站的类。现在,我想在GUI中显示已抓取了多少个网站,还剩下了多少个。我想知道什么是最好的解决方案。

第一个想法是在GUI中启动计时器,并定期询问搜寻器剩余了多少个。但是我想这很脏

然后,可以将GUI传递给搜寻器,并且每次就绪网站的数量发生变化时,它都将调用GUI方法。但是我认为这没有更好吗?

做这样的事情的最好方法是什么?

疯狂程序员

这取决于。

询问爬虫完成了多少工作不是一个坏主意。好处是您可以实际控制何时进行更新并可以平衡负载。

不利的一面是,这些信息可能很快就会过时,并且您可能永远也无法获得准确的结果,因为当您读取这些值时,搜寻器可能已经更改了它们。

您可以让搜寻器提供一个回调接口,GUI会注册该接口,并且当搜寻器更新其状态时,会回调给GUI。

这里的问题是UI可能会充斥结果,导致在尝试跟上时会滞后。同样,在搜寻器发出这些通知的同时,它并没有起作用...

(假设摇摆)

无论哪种情况,您都需要确保您对UI提出的任何想法都来自事件分发线程。这意味着,如果您使用回调方法,则返回的更新将来自搜寻器线程上下文。您将需要将它们与EDT重新同步。

在这种情况下,您可以简单地使用SwingWorker提供了将更新同步回EDT的机制。

在Swing中查看并发以获取更多详细信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

RunST防止在闭包中访问另一个有状态线程的引用

来自分类Dev

C#-使用委托从另一个线程更新GUI datagridview

来自分类Dev

android:从另一个类中的另一个线程更新UI

来自分类Dev

我如何在另一个线程Qt中显示MessageBox

来自分类Dev

在另一个线程中从模块更新标签

来自分类Dev

为什么只有在使用另一个线程时才能获取webBrowser的状态?

来自分类Dev

从C ++ 11中的另一个线程解锁一个线程

来自分类Dev

从另一个线程进行GUI更新-WPF Powershell

来自分类Dev

在另一个线程的mapView中快速显示注释

来自分类Dev

startActivty在另一个线程中

来自分类Dev

从另一个文件中的另一个组件更改一个组件的状态

来自分类Dev

在另一个线程中设置变量

来自分类Dev

Python多线程使用另一个线程中的一个线程的数据

来自分类Dev

如何在Nuxt中从另一个状态访问一个Vuex状态?

来自分类Dev

从另一个文件中的另一个组件更改一个组件的状态

来自分类Dev

在另一个线程中从模块更新标签

来自分类Dev

在另一个View Controller中停止线程

来自分类Dev

在另一个线程中的一个线程内运行代码

来自分类Dev

从另一个线程操纵GUI控件有什么问题吗?

来自分类Dev

与另一个线程中的循环通信

来自分类Dev

如何从另一个线程(Android处理程序)在imageview中显示位图

来自分类Dev

在另一个线程的mapView中快速显示注释

来自分类Dev

如何将GUI文件作为Java中另一个类的线程运行?

来自分类Dev

如何从另一个线程向GUI发送标签-PyQt

来自分类Dev

从python中的文件调用另一个GUI

来自分类Dev

等到另一个线程在 jQuery 中工作

来自分类Dev

为另一个线程设置线程执行状态

来自分类Dev

更改另一个组件中的状态

来自分类Dev

在 reactjs 的另一个组件中渲染状态

Related 相关文章

  1. 1

    RunST防止在闭包中访问另一个有状态线程的引用

  2. 2

    C#-使用委托从另一个线程更新GUI datagridview

  3. 3

    android:从另一个类中的另一个线程更新UI

  4. 4

    我如何在另一个线程Qt中显示MessageBox

  5. 5

    在另一个线程中从模块更新标签

  6. 6

    为什么只有在使用另一个线程时才能获取webBrowser的状态?

  7. 7

    从C ++ 11中的另一个线程解锁一个线程

  8. 8

    从另一个线程进行GUI更新-WPF Powershell

  9. 9

    在另一个线程的mapView中快速显示注释

  10. 10

    startActivty在另一个线程中

  11. 11

    从另一个文件中的另一个组件更改一个组件的状态

  12. 12

    在另一个线程中设置变量

  13. 13

    Python多线程使用另一个线程中的一个线程的数据

  14. 14

    如何在Nuxt中从另一个状态访问一个Vuex状态?

  15. 15

    从另一个文件中的另一个组件更改一个组件的状态

  16. 16

    在另一个线程中从模块更新标签

  17. 17

    在另一个View Controller中停止线程

  18. 18

    在另一个线程中的一个线程内运行代码

  19. 19

    从另一个线程操纵GUI控件有什么问题吗?

  20. 20

    与另一个线程中的循环通信

  21. 21

    如何从另一个线程(Android处理程序)在imageview中显示位图

  22. 22

    在另一个线程的mapView中快速显示注释

  23. 23

    如何将GUI文件作为Java中另一个类的线程运行?

  24. 24

    如何从另一个线程向GUI发送标签-PyQt

  25. 25

    从python中的文件调用另一个GUI

  26. 26

    等到另一个线程在 jQuery 中工作

  27. 27

    为另一个线程设置线程执行状态

  28. 28

    更改另一个组件中的状态

  29. 29

    在 reactjs 的另一个组件中渲染状态

热门标签

归档