只是learnd的SwingWorker
并有一个问题
(我有搜索答案,这一点,但非专门解决这个设置)的Java SwingWorker类从doInBackground()和HOWTO推出可运行通知事件调度线程
林创建小型服务器,只有最多同时2-3个连接。
林使用Jframe
具有内部类SwingWorker
在的SwingWorker doInBackground()
我有:
while(true) {
Socket client_socket = listen_socket.accept();
Connection con = new Connection(client_socket, "name");
Future<Connection> future = es.submit(con , con);
tasks.add(future);
}
的Connection
是runnable
和声明为SwingWorker
一个子类。
在runnable
完成之前,它在SQL中写入一个条目。
那么如何才能在它死亡之前运行发送一个单挑到Jframe
事件调度线程。
和Jframe
将检查新条目的SQL并将其显示给用户。
什么是最好的事:
1 - 创建一个接口女巫所有可运行可以发送邮件到Jframe
事件调度线程。
2 - 使用SwingWorker
insted的的runnables
所有新连接,并具有Done()
呼叫使用服务器SwingWorker
调用方法Jframe
方法EventQueue.invokeLater..
3 - 或使用一个PropertyChangeListener(不知何故没有确定)
4 - 让每个可运行参数的参考号为Jframe
,并且做EventQueue.invokeLater..
我的服务器SwingWorker正在使用它的'done()',当服务器关闭。我从'doInBackground()'启动的所有'runnables'怎么样,他们没有'done()'机制 – Erik
我认为他已经知道使用SwingWorker。他的问题超出了SwingWorker使用的基础。 –
@Erik:他们是可运行的还是未来?如果是后者,那么他们确实有完善的方法,特别是如果FutureTask或类似的东西。 –