首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从并行线程更新视图的结果

从并行线程更新视图的结果
EN

Stack Overflow用户
提问于 2013-10-02 15:24:26
回答 2查看 68关注 0票数 0

我的数据模型层中有两个“并行”运行的线程,它们都计算一些值。我有一个mvc模式设置,所以我的数据模型有两个数组,每个数组负责从我的每个线程生成的值。如何在不阻塞主UI的情况下告诉我的视图我的数组有新数据?

我的线程在计时器上每隔x秒运行一次,每个线程生成一个整数。其中的每一个都需要添加到一个数组中,当添加时,视图应该通过观察者模式获得一个通知,以便根据两个数组的更新值更新屏幕。这应该在不阻塞主UI线程的情况下发生。所以我不能真的做while(true)或者为每个线程设置一个futureValue,因为这会让我的ui等待线程完成。我能做什么?

EN

回答 2

Stack Overflow用户

发布于 2013-10-02 16:00:08

您将始终:

  • 扩展包含结果的数组类,并覆盖add方法
  • 在代码末尾放入add以通知UI- Thread
  • 同步更新,您可以只对一个线程使用ExecutorService,这是您通过<代码>D9获得的。因为通知UI-Thread.
  • Your执行的代码应该是doInBackground
  • In的一部分并在submit()中处理,所以更新用户界面的done()方法(done()在Swing的事件分派线程上执行)

有关Threads and Swing的更多信息,请参阅此处

票数 1
EN

Stack Overflow用户

发布于 2013-10-02 16:38:03

这似乎是一种相当复杂的方法。下面是我的:

  • 创建一个摆脱数组的blocking queue
  • Get,并让每个线程将其结果放入队列中
  • 启动一个等待队列中的项的工作线程
  • 在工作线程中使用SwingUtilities.invokeLater()更新UI。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19131862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档