420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518

Потокобезопасный вызов процедур через Handler

04.11.2013, 00:21. Показов 937. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь написать потокобезопасные сообщения через через Handler.

Примерно это выглядит ТАК:

Java
1
2
3
4
5
6
7
private static Handler Tread1_Handler = new Handler(); // заготовка для синхронизации с основным потоком!
private Context cont; // =this
 
...
Tread1_Handler.post(new Runnable() {public void run() { // синхронизируем
   Toast.makeText(cont, "HELLO!", Toast.LENGTH_LONG).show();
}});
Все работает... но! Как мне ПЕРЕДАТЬ потоко-безопасно несколько параметров разного типа в конкретно ЭТОТ вызов потока? Например заменить HELLO на String mess? Передать булеан для LONG или SHORT?
Если делать это глобальными переменными, то при вызове подряд двух сообщений могу получить одинаковый результат - выполнение первого вызова началось только после заполнения вторых параметров.

Пока что решаю это списком типа PUSH и POP, но это не удобно... Подозреваю что есть более простое ГОТОВОЕ решение! Но как??? Подскажите пожалуйста!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.11.2013, 00:21
Ответы с готовыми решениями:

Потокобезопасный вызов метода
Признаюсь, потокобезопасность и делегаты для меня тёмный лес, поэтому подскажите пожалуйста, когда мне нужно потокобезопасно изменить...

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

[JWASM] Организовать вызов собственных процедур с передачей параметров через стек
подскажите пожалуйста как в jwasm на 64 бит сделать так чтобы апи функции вызывались через RCX RDX r8 R9 как и должно быть. а функции...

2
 Аватар для Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
04.11.2013, 00:33
1. Сделать метод synchronized.
2. Вызвать его.
3. Готово. Вы восхитительны.
Java
1
2
3
4
5
6
7
8
public synchronized void method(final String param1, final long param2) {
Tread1_Handler.post(new Runnable() {
     @Override
     public void run() {
          Toast.makeText(cont, param1, Toast.LENGTH_LONG).show();
     }
});
}
А еще есть volatile (работает корректно, кажется, только с 4.0)
1
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
04.11.2013, 01:33  [ТС]
То что нужно! Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.11.2013, 01:33
Помогаю со студенческими работами здесь

Напишите два класса Handler и Handler Controller, которые будут реализовывать поведение, описанное ниже
Приветствую всех! Нужна помощь в написании(решении) задачи, дело в том, что я начал изучать Java (есть определенные успехи) но в нашем...

Вызов процедур
Добрый день. В VBA новичек. Стоит задача по формированию сводной таблицы из заранее забитой таблицы с небольшими расчетами по 4 условиям....

Вызов переменных из процедур
Нужно написать процедуру для нахождения количества чисел кратных 5 и максимальное из них. Программа никак не хочет присваивать значения...

Вызов хранимых процедур
Здравствуйте, подскажите пожалуйста, как мне правильно сделать: есть форма, на форме расположены элементы, dataGridView, TextBox и button,...

вызов процедур по циклу
Привет всем кодерам! Нужна помощь по реализации цикла. Возможно ли сделать цикл для вызова процедур с разными параметрами. К примеру в...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru