Заполнение объекта таблицы SWT с использованием отдельного класса потока - PullRequest
3 голосов
/ 14 марта 2010

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

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

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

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

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

Regs Me

1 Ответ

1 голос
/ 14 марта 2010

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

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

...