|
|
|
Чтение gui из другого потока
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. Напротив, я считаю, что так вполне можно сделать. Одна проблема в том, что я уже довольно много накодил и у меня второй поток стартует сразу же практически с запуском программы. До собственно ввода данных он запускает экземпляр хрома, осуществляет вход на сайт (если, указан автологин в ини-файле) или же ждет залогинивания юзера, проверяет выбран ли нужный раздел сайта и только в этот момент начинает обрабатывать штрих-коды. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 23:51 |
|
||
|
Чтение gui из другого потока
|
|||
|---|---|---|---|
|
#18+
smackmychi, а что там с моим мылом, не совсем понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 23:53 |
|
||
|
Чтение gui из другого потока
|
|||
|---|---|---|---|
|
#18+
smackmychi, Например, Запускаете поток, пока поток жив гоняете цикл - можете картинку загрузки в цикле обновлять после цикла убираете картинку загрузки после пишете проверку полученных из базы данных - достаете их, например, через какой-нить метод класса NewClass (для этого вам нужно и хранить экземпляр объекта) после проверки идут действия с графическим интерфейсом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 23:54 |
|
||
|
Чтение gui из другого потока
|
|||
|---|---|---|---|
|
#18+
gnick, ну что делать. Тебе оба говорят - максимум работы - в потоке ГУИ. Доп поток только оборачивать МЕДЛЕННЫЕ операции. Напр. у меня в андроиде только пост запрос на копку Старт Всё остальное успевает обработаться 1000 раз в основном потоке ГУИ IMHO Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 23:56 |
|
||
|
Чтение gui из другого потока
|
|||
|---|---|---|---|
|
#18+
gnick, Если второй поток не отвечает за отрисовку интерфейса пользователя, то какие тогда проблемы? Делаете в нем, что душе угодно, ибо это никак не отбразится на первом потоке, который отвечает за отрисовку и обработку событий пользовательского интерфейса. И не паритесь Ваш адрес электронной почты указан в качестве адреса электронной почты организатора открытого аукциона, например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 23:57 |
|
||
|
Чтение gui из другого потока
|
|||
|---|---|---|---|
|
#18+
smackmychiВаш адрес электронной почты указан в качестве адреса электронной почты организатора открытого аукциона, например.Это, как бы, требование законодательства ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 23:58 |
|
||
|
Чтение gui из другого потока
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, Ну, я как поставщик это все понимаю. Просто удивился, что здесь увидел человека, тесно соприкасающегося с госзакупками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2014, 23:59 |
|
||
|
Чтение gui из другого потока
|
|||
|---|---|---|---|
|
#18+
smackmychi, ну это давняя история. Когда-то я работал в организации, которая среди прочего была уполномоченным органом по размещению заказов для района. Что касается потоков. Нельзя сказать, что обрабатывающий поток никак не влияет на пользовательский интерфейс. Во-первых, в момент, когда он по какой-то причине останавливается, кнопочка Пауза меняется на Продолжить. Кроме того, выводятся сообщения в аналоге делфийского статусбара. И, наконец, с чего началась история, он должен считывать данные из гуи. Я бы и хотел не париться, но приходится :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 00:04 |
|
||
|
Чтение gui из другого потока
|
|||
|---|---|---|---|
|
#18+
gnick, Окей, тогда вопрос - что еще не работает, кроме вызова метода получения содержимого текстового поля? Если все остальное работает, почему бы не обойтись передачей значения(обновлением какого-то поля объекта), а не ссылки на экземпляр объекта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 00:07 |
|
||
|
Чтение gui из другого потока
|
|||
|---|---|---|---|
|
#18+
Off: я и не подозревал, что меня так много в гугле в связи с этими закупками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 00:07 |
|
||
|
Чтение gui из другого потока
|
|||
|---|---|---|---|
|
#18+
gnick, Это называется - прозрачность)))) Хотя она напрямую от наглости заказчика зависит, к сожалению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 00:09 |
|
||
|
Чтение gui из другого потока
|
|||
|---|---|---|---|
|
#18+
smackmychi, обновление гуи работает как ожидалось. А вот поведение считывания оказалось странным. поэтому я и завел песню. Вы и Petro123 утверждаете, что все должно быть нормально. И, поскольку это говорят два человека, это повод серьезно задуматься, не накосячил ли я в чем-то другом. Что я сейчас и делалю. А другое, над чем я сейчас крепко размышляю, опять-таки по Вашему совету штамповать дочерние потоки только для процедуры обработки конкретного штрих-кода. Так что большое Вам спасибо за обсуждение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 00:12 |
|
||
|
Чтение gui из другого потока
|
|||
|---|---|---|---|
|
#18+
В любом случае, я уже не имею отношения к закупкам на стороне заказчика. Скорее теперь на противоположной стороне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 00:13 |
|
||
|
Чтение gui из другого потока
|
|||
|---|---|---|---|
|
#18+
gnick, По тексту увидите описание вашей проблемы. Можете не париться, в общем, SWT однопоточен. Там есть примеры. Можете использовать то, что приведено и, конечно, свой класс(ы), в котором(ых) нужная логика будет реализована. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 00:22 |
|
||
|
Чтение gui из другого потока
|
|||
|---|---|---|---|
|
#18+
Большое спасибо за внимание к проблеме и ценные советы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 00:27 |
|
||
|
Чтение gui из другого потока
|
|||
|---|---|---|---|
|
#18+
gnick, Вы хоть сообщите потом о результате своей деятельности в отношении данной проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 13:29 |
|
||
|
Чтение gui из другого потока
|
|||
|---|---|---|---|
|
#18+
smackmychi, хорошо. Обратите все же внимание, что в указанной Вами статье, как собственно и в тех, которые нарыл в свое время я, упомянутая мной ошибка описывается в результате обновления данных гуи, а не попыток считывания оных. Поэтому иного способа сделать сколько-нибудь удачно, кроме передачи-таки самих значений в конструкторе, и, как следствие, создание отдельного потока на каждую новую обработку штрих-кода я по-прежнему не вижу. Видимо придется переделать все в этом направлении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 17:53 |
|
||
|
Чтение gui из другого потока
|
|||
|---|---|---|---|
|
#18+
gnick, На данный момент без кода и опыта, и опытов мне не разобраться. Пишут, что любое изменение из потока отличного от потока SWT UI будет бросать исключение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 18:02 |
|
||
|
Чтение gui из другого потока
|
|||
|---|---|---|---|
|
#18+
gnick, По вашим же словам получается наоборот - методы, которые вносят изменения - не возбуждают исключение, тогда как метод получения содержимого поля вызывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 18:04 |
|
||
|
Чтение gui из другого потока
|
|||
|---|---|---|---|
|
#18+
gnick, from stackoverflowTo allow background threads to perform operations on objects belonging to the UI-thread, the methods syncExec(Runnable runnable) and asyncExec(Runnable runnable) of Display are used. These are the only methods in SWT that can be called from any thread. They allow a runnable to be executed by the UI-thread , either synchronously, causing the background thread to wait for the runnable to finish, or asynchronously allowing the background thread to continue execution without waiting for the result. A runnable that is executed using syncExec() most closely matches the equivalent direct call to the UI operation because a Java method call always waits for the result before proceeding, just like syncExec(). Как я понимаю, таким образом можно запускать код на выполнение в потоке UI, чтобы иметь возможность с ним(UI) работать. Поэтому можно же делать следующие вещи из вашего второго потока. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Если ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 18:26 |
|
||
|
Чтение gui из другого потока
|
|||
|---|---|---|---|
|
#18+
Вот теперь мы говорим на одном языке :-) Дойдя до этого кода я и залез с вопросом на этот форум. Код: java 1. Основной вопрос здесь такой- что тут есть переменная code? Где она объявлена и какова ее область видимости? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 19:44 |
|
||
|
Чтение gui из другого потока
|
|||
|---|---|---|---|
|
#18+
Сорри, был невнимателен к Вашему посту. Я думал Вы только в следующем предложите выделить член класса. В общем именно так у меня сейчас и реализовано. Но мне это не нравится. Эта переменная нужна очень ограниченный отрезок времени и необходимость резервирования для нее отдельного поля класса (а другого по-видимому просто нет) и наводит меня на мысль о том, что неверен сам подход. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 19:49 |
|
||
|
Чтение gui из другого потока
|
|||
|---|---|---|---|
|
#18+
gnick, Пока мне не приходит в голову другой метод получения из внутреннего класса данных. Можно, конечно, так Код: java 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2014, 20:00 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38739909&tid=2126634]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
162ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
88ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 503ms |

| 0 / 0 |
