晨飚动野 2017-05-14 15:52 采纳率: 16.7%
浏览 1889

各位可否帮忙看看一个JavaFX多线程更新UI元素的问题

问题是这样的,我们操作系统课设的题目之一是要模拟进程调度,我的做法是这样的:界面中存在一个VBox控件以保存多个就绪进程(每个进程以TextField表示),同时一个ProgressBar不断从就绪进程队列的队首得到当前进程,根据该进程的运行时间与进度条相绑定起来,在运行完毕以后再调度下一个进程,此部分代码如下:
图片说明

这样的话,如果当前只有一个就绪进程,那么进度条是可以正常显示,如果大于一个进程的话,就会只显示最后一个进程的进度情况。为了解决这个问题,我在上面代码段下面加了一个Thread.sleep(currentPcb.getRuntime()),但是这样的话每个进程的进度情况都不显示了,而在最后直接得到结果。我知道在java控制台下面这样处理是可以的,但不太明确界面线程的一些细节,希望得到大家的帮助!(我是利用循环来判断就绪队列当中是否存在就绪进程的)
除此之外,我在每次循环末结束时都会VBox.getChildren().remove()一下,但是这些remove()效果会在退出整个循环的时候才出现而不是每次循环结束都出现,不知其中的原因。

  • 写回答

1条回答 默认 最新

  • devmiao 2017-05-14 15:57
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题