我可以修改SwingWorker实例化之前存在的swing工作线程中对象的状态吗?

时间:2015-04-28 13:47:06

标签: swingworker

伪代码:

final MyClass object = new MyClass();
workWith(object); // which may modify states of object

SwingWorker<MyClass, Object> sw = new SwingWorker<MyClass, Object>() {
       @Override
       public MyClass doInBackground() {
           modify(object);
           return object;
       }
   };
sw.execute();

MyClass object2 = sw.get();

起初我认为它应该是安全的,因为SwingWorker在对象之后被实例化。但是,在我仔细研究之后,似乎SwingWorker使用了现有线程池中的线程,这意味着在创建对象之前该线程可能已经存在。

问题:在伪代码中修改 对象 是否安全?如果不是,是否有一种简单的方法可以修改工作线程中的 object ,然后将其返回给主线程?

或者换句话说:是否以某种方式保证在初始化SwingWorker之前创建的所有对象都能在工作线程中正确显示?

谢谢!

0 个答案:

没有答案