san*_*ris 4 java concurrency swing multithreading
在我的带有Swing GUI的Java应用程序中,我想实现以下目标.
有一个非GUI线程正在运行,执行一些工作.有一次,该线程需要用户输入才能继续.然后,我想对GUI进行一些更改,等待特定的GUI操作(如用户按下OK按钮),将输入的数据从GUI获取到非GUI线程,并让它继续计算.
环顾四周,我发现了很多关于如何从另一个线程上的Swing GUI线程开始执行(长时间运行)任务的信息,但没有解决我的问题.
SwingUtilites.invokeAndWait听起来像它做的工作,但首先,它需要一个Runnable参数而不是一个Callable,所以没有直接的方式来返回结果,其次,它没有解决等待某个GUI事件的问题.
我意识到我可以使用例如a来构建我自己的解决方案CountDownLatch,但对我而言,问题似乎经常出现,以便有一个标准的解决方案.
所以,我的问题是:这真的是一个常见的问题,如果是的话,标准库/库中是否有解决方案?如果没有标准解决方案,您会如何解决?如果这个问题不经常发生,为什么不呢?