Заполнение объекта таблицы SWT с использованием отдельного класса потока

У меня есть фрагмент кода от команды swt, который делает именно то, что мне нужно. Однако есть часть, которую я хочу выделить в другой класс, в частности, весь встроенный материал. В ответ на мой прежний вопрос было высказано предположение, что Следует использовать Callable. для реализации многопоточных объектов. Предлагается использовать реализацию runnable или лучше callable, так как мне нужен какой-то возврат.

Однако я не понимаю. Мои проблемы:

  1. В исходном коде во встроенной реализации метода run вызываются некоторые родительские объекты. Как мне это сделать, когда поток разделен? Передать объект через параметр C'tor?
  2. В исходном коде другой исполняемый объект вложен в исполняемую реализацию. Для чего это? Как реализовать это при разделении кода? Кроме того, этот вложенный исполняемый объект снова вызывает объекты, созданные основным методом.

Пожалуйста, смилуйтесь надо мной, но я все еще совсем новичок, и мой мозг вот-вот рухнет :-( Все, что я хочу, это разделить все многопоточные вещи в другой класс и заставить программу делать то же самое, что она уже делает. Помогите, пожалуйста!

Еще раз большое спасибо за любые полезные предложения, подсказки, примеры и т.д...

Зарегистрируйте меня


person Ta Sas    schedule 14.03.2010    source источник


Ответы (1)


Внутренние нестатические классы в java получают родительский экземпляр (для нестатических методов) и все окончательные локальные переменные (и параметры метода), которые им нужны в конструкторе. Вы можете реализовать этот подход самостоятельно — это нормально для больших классов.

Все элементы пользовательского интерфейса должны выполняться в основном потоке. Вот почему используется вложенный объект Runnable. Он добавляется в очередь событий с помощью display.syncExec, затем основной поток когда-нибудь извлекает его и выполняет свой метод run. Если вы хотите создать здесь отдельный класс, вы должны передать параметры через конструкторы или setXXX методы.

person Ha.    schedule 14.03.2010
comment
Эй, спасибо... думаю я начинаю понимать. Попробуем это наше прямо сейчас ... - person Ta Sas; 14.03.2010