|
8 / 8 / 2
Регистрация: 30.03.2013
Сообщений: 63
|
|||||||||||
Многопоточность в SWT06.06.2013, 16:08. Показов 2507. Ответов 9
Метки нет (Все метки)
Доборого времени суток.
Не могу понять, как создать вторую нить в SWT. Делал по разным примерам, но всë равно не получается( В общем цель такая: Есть классс SWTThreads, который реализует GUI и есть класс SWTThreadsEngine, который отвечает за обаботку событий. В окне находятся текстовое поле и кнопка. Когда пользователь нажимает на кнопку, что-то происходит(в примере наинается цикл, который 50000 раз выводит новую строку) и нужно , что бы пользователь во время этого мог еще что-то писать в ткстовом поле. Вот код двух классов: Хочу понять, в чем моя ошибка?
0
|
|||||||||||
| 06.06.2013, 16:08 | |
|
Ответы с готовыми решениями:
9
SWT TableColumn Установка swt |
|
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
|
|
| 06.06.2013, 17:07 | |
|
Я не разу не работал с SWT , но может быть все такие нужно запустить ещё 1 поток?
Я просто не вижу где у вас используеться метод start
0
|
|
|
8 / 8 / 2
Регистрация: 30.03.2013
Сообщений: 63
|
|
| 06.06.2013, 19:28 [ТС] | |
|
А в каком именно месте нужно вызвать метод start()?
0
|
|
|
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
|
||||||
| 06.06.2013, 19:56 | ||||||
|
У Объекта который Наследуеться от Thread или реализует интерфес Runnable (Но там через конструктор)
Добавлено через 2 минуты Вот вам пример ... Когда сморел что такое потоки сделал , так что думаю понятно будет ....
0
|
||||||
|
8 / 8 / 2
Регистрация: 30.03.2013
Сообщений: 63
|
|
| 06.06.2013, 20:18 [ТС] | |
|
Но в SWT новый поток реализуется другим же способом. Если попытаться запустить новую нить, таким способом, то он выкидывает эксэпшэн: org.eclipse.swt.SWTException: Invalid thread access
0
|
|
|
77 / 33 / 9
Регистрация: 04.06.2013
Сообщений: 295
|
|
| 06.06.2013, 20:22 | |
|
Ну я предупредил что я не когда не игрался с SWT)
0
|
|
|
|
|
| 06.06.2013, 20:32 | |
|
сам SWT не создаст поток за вас.
Вызов Display.asyncExec - нужно использовать для показа результата расчетов, которые выполняются в другом потоке. Сам код Runnable который передается в asyncExec запускается в UI потоке. Соответственно логика должна быть такой: при нажатии на кнопку создавайте поток (new Thread()) выполняйте все расчеты в нем. И если понадобится обратиться к UI - тогда используйте asyncExec. PS. Не самая лучшая идея реализовывать всю логику в конструкторе объекта. Сделайте отдельный метод.
2
|
|
|
8 / 8 / 2
Регистрация: 30.03.2013
Сообщений: 63
|
|
| 06.06.2013, 20:51 [ТС] | |
|
Если вам не трудно, можете изменить мои классы, что бы я усвоил это на примере.
0
|
|
|
|
|||||||
| 06.06.2013, 21:06 | |||||||
1
|
|||||||
|
8 / 8 / 2
Регистрация: 30.03.2013
Сообщений: 63
|
|
| 06.06.2013, 21:10 [ТС] | |
|
Огромное вам спасибо!
0
|
|
| 06.06.2013, 21:10 | |
|
Помогаю со студенческими работами здесь
10
SWT: Удалить слушателя SWT и таблицы (сложные шапки) Запись массива в SWT Table
Создание просто SWT приложения на Eclipse Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|