3

我有一个由 swt 团队提供的代码片段,它完全符合我的需要。但是,我想将一部分分离到另一个类中,特别是整个内联的东西。针对我之前的问题,有人建议应该使用Callable来实现线程对象。建议使用 runnable 或更好的 callable 的实现,因为我确实需要某种返回。

但是,我不明白。我的问题是:

  1. 在原始代码中,在方法 run 的内联实现中,调用了一些父对象。当线程分离时我会怎么做?通过 C'tor 的参数传递对象?
  2. 在原始代码中,另一个可运行对象嵌套在可运行实现中。到底有什么好处呢?分离代码后如何实现此外,这个嵌套的 runnable 再次调用由 main 方法创建的对象。

请怜悯我,但我仍然是一个初学者,我的大脑快要崩溃了:-(我想要的只是将所有线程化的东西分成另一个类,并让程序做和它已经做的一样的事情。请帮忙!

再次非常感谢您提供任何有用的建议、提示、示例等...

注册我

4

1 回答 1

1

java 中的内部非静态类在构造函数中接收父实例(用于非静态方法)和所有最终局部变量(和方法参数)。您可以自己实施这种方法——这对于大型课程来说是可以的。

所有 UI 的东西都必须在主线程中执行。这就是使用嵌套Runnable对象的原因。它被添加到事件队列中,display.syncExec然后主线程在某个时候提取它并执行它的run方法。如果你想在这里创建单独的类,你应该通过构造函数或setXXX方法传递参数。

于 2010-03-14T09:36:27.237 回答