我的数据模型层中有两个线程以“并行”方式运行,并且都计算一些值。我有一个mvc模式设置,所以我的数据模型有两个数组,每个数组负责从我的每个线程生成的值。我如何告诉我的观点,我的数组在主UI上没有阻塞的情况下有新数据?
我的线程在一个定时器上运行x秒并且每个都生成一个整数。这些中的每一个都需要添加到一个数组中,并且在添加时,视图应该通过观察者模式获得通知,以根据两个数组的更新值更新屏幕。这应该发生,而不会阻止主ui线程。所以我真的不能为while(true)或为每个线程设置futureValue,因为这会让我的ui等到线程完成。我该怎么办?
答案 0 :(得分:1)
你将永远:
add
方法add
以通知UI-Thread ExecutorService
,Executors.newSingleThreadExecutor()
。在那里你submit()
通知UI-Thread的代码。WorkerThread
的一部分,并在doInBackground
done()
方法中更新用户界面(done()
在Swing的事件派发线程上执行)答案 1 :(得分:0)
这似乎是一种非常复杂的方法。这是我的: