Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
290 / 271 / 107
Регистрация: 10.06.2011
Сообщений: 696

Форма не обновляется при запуске второго потока

19.07.2014, 23:21. Показов 1462. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть следующий код:
Java
1
2
3
4
5
6
7
8
9
public void Upd(){
l=new Ping();
thr=new Thread(l);
thr.start();
while(thr.isAlive()){
srv.setText("текст");
Thread.sleep(100);}
srv.setText(data);
}
при запуске второго потока форма почему-то зависает и обновляется только после завершения Upd, хотя другие действия до завершения второго потока выполняются. Как это исправить?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.07.2014, 23:21
Ответы с готовыми решениями:

Управление формой при запуске второго потока
Главный поток запускается main'ом. Когда запускаю второй поток, мне надо, чтобы в этот момент на форме в JTextArea показывались какие-то...

При запуске второго потока не отправляется сигнал readyToSend объекту nthread
Здравствуйте, бьюсь уже целый день над проблемой. Суть задачи: Нужно запустить второй поток по событию нажатия кнопки на форме. Не...

Не обновляется JLabel из второго потока
:cry: Учусь работать многопоточно. Создал второй поток с генератором тактов. На нем основал время работы программы. То-есть с задержкой в 1...

5
216 / 216 / 33
Регистрация: 26.12.2010
Сообщений: 691
20.07.2014, 13:59
так нельзя .. работать с UI можно только в основном потоке, если же необходимо сделать какие то действия из вне, вызывайте runOnUiTread .. Да и .sleep() не стоит вызывать, если нужна задержка используем либо таймер, но я лично предпочитаю создавать Handler и вызывать postDelayed.
0
290 / 271 / 107
Регистрация: 10.06.2011
Сообщений: 696
20.07.2014, 16:06  [ТС]
прочитал про runOnUiThread, классы Handler и AsyncTask, но так и не понял, как заставить форму обновляться постоянно (иначе стандартый прогрессбар не будет крутиться) И забыл написать, что второй поток никоим образом не изменяет форму,только записывает ответ от сервера в переменную, откуда главный поток и выводит ответ на форму
0
216 / 216 / 33
Регистрация: 26.12.2010
Сообщений: 691
20.07.2014, 16:36
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
private Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            if(msg.what == 1) {
                postDelayed(runnable, 1000);
            }
        }
    };
 
    private Runnable runnable = new Runnable() {
        @Override
        public void run() {
            srv.setText("текст");
            srv.setText(data);
            handler.sendEmptyMessage(1);
        }
    };
И запускаем все это дело -
Java
1
handler.post(runnable);
0
290 / 271 / 107
Регистрация: 10.06.2011
Сообщений: 696
20.07.2014, 22:43  [ТС]
android.os.NetworkOnMainThreadException при запросе на сервер через этот способ.
0
216 / 216 / 33
Регистрация: 26.12.2010
Сообщений: 691
20.07.2014, 23:39
Лучший ответ Сообщение было отмечено Darth Coder как решение

Решение

так работу с сервером выносите в отдельный поток, можно использовать asynctask
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.07.2014, 23:39
Помогаю со студенческими работами здесь

Клиент-сервер: Если запустить первый поток то он работает, при запуске второго потока выходит ошибка
Здравствуйте, пытаюсь разбить код на два потока. 1) Поток прием клиентов. void login_server() { struct sockaddr_in saddr; ...

При добавлении записи не обновляется форма
Добавляю запись через кнопку и отдельную форму, в таблице информация обновляется а в форме с выводом таблицы нет

Не обновляется форма заказа. При открытии формы заново показывает сообщение, что заявка принята
Подскажите как можно обновить форму заказа, чтоб при повторном открытии появлялась форма с пустыми полями. Вот какой у меня код ...

Приложение стало зависать при добавлении второго потока с вычислениями
суть такая. есть калькулятор. помимо своих стандартных функций он еще и считает длину числа и сумму всех его цифр и выводит эти значения в...

Передача параметров при запуске потока
Подскажите почему нельзя опустить скобки при вызове анонимного метода при создании потока? new Thread(delegate()//Вот тут ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru