AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.12.2004, 13:08   #1  
sergy is offline
sergy
Участник
 
62 / 10 (1) +
Регистрация: 12.02.2004
Адрес: Воронеж
Описание функций класса Thread
Всем добрый день!
Подскажите пожалуйста где можно найти описание функций класса Thread?
Старый 01.12.2004, 13:52   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
нетути такового.
Старый 01.12.2004, 14:02   #3  
sergy is offline
sergy
Участник
 
62 / 10 (1) +
Регистрация: 12.02.2004
Адрес: Воронеж
Я так и думал
Тогда как правильно определить, что поток закончил выполнение функции, указанной в методе run(...)
Старый 01.12.2004, 14:24   #4  
lagr221374
Гость
 
n/a
Наверное правильно будет, как в tutorialThread:
В конце выполняемой функции потока использовать setOutputParm для выставления флажка .
Соответственно, проверять флажок с помощью getOutputParm
Старый 01.12.2004, 14:26   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
и получится нереентерабельный код
Старый 01.12.2004, 14:53   #6  
sergy is offline
sergy
Участник
 
62 / 10 (1) +
Регистрация: 12.02.2004
Адрес: Воронеж
Честно говоря не понял значение слова "нереентерабельный ".
По поводу того как сделано в tutorial_Tread через setOutputParm, то это пробовали работает плохо, система выдает сообщения об ошибке.
Старый 01.12.2004, 15:01   #7  
Ned is offline
Ned
Lean Six Sigma
 
680 / 99 (5) ++++
Регистрация: 29.12.2002
Адрес: самолёт
Цитата:
Честно говоря не понял значение слова "нереентерабельный ".
Присоединяюсь. Тоже не понял.
__________________
Viacheslav Nefedov, http://www.nefedov.net, http://restock.guru/
Старый 01.12.2004, 15:17   #8  
lagr221374
Гость
 
n/a
Возможное (но корявенькое) решение:
Можно сделать флажок в какой - нибудь постоянной таблице и ставить его при завершении функции потока. Соответственно там, где нужно проверять его.
А где выполняется поток (сервер или клиент)?
Старый 01.12.2004, 15:20   #9  
sergy is offline
sergy
Участник
 
62 / 10 (1) +
Регистрация: 12.02.2004
Адрес: Воронеж
Поток выполняется на клиенте, клиентов много, таблица не пойдет. Что - то должно быть в самом классе Thread. Было бы описание
Старый 01.12.2004, 15:34   #10  
lagr221374
Гость
 
n/a
Как я понимаю функция потока endTime сообщает время окончания работы функции потока, либо 0 (если функция работает). У меня вроде бы работала, как описал выше. Не подойдет?
Старый 01.12.2004, 15:36   #11  
sergy is offline
sergy
Участник
 
62 / 10 (1) +
Регистрация: 12.02.2004
Адрес: Воронеж
Кстати, появляющаяся ошибка: Can't create tooltip ( tipe2 )
Старый 01.12.2004, 17:03   #12  
sergy is offline
sergy
Участник
 
62 / 10 (1) +
Регистрация: 12.02.2004
Адрес: Воронеж
Выясняются новые подробности работы потоков. Оказывается действительно создается отдельный поток, в нем окно с названием "AxToolTip" tooltips_class32 со стилями WS_POPUP, WS_CLIPSIBLING, WS_BORDER, TTS_ALWAYSTIP, TTS_NOPREFIX. Все это видно в Spy++.
Старый 01.12.2004, 17:36   #13  
bucken is offline
bucken
Участник
Аватар для bucken
 
259 / 12 (1) ++
Регистрация: 04.09.2003
Адрес: Москва
Реентерабильность.
Модуль(Объект) считается реентерабильным, если его может использовать ОДНОВРЕМЕННО 2 и более потока.
Ну а нереентерабильный - это тот, которым может пользоваться одновремено только один.

ну и Реентерабельность = ReEnter = Повторый Вход.
__________________
Уточните значение слов и вы избавите человечество от половины его заблуждений. (Рене Декарт) / Axapta 2.5
Старый 01.12.2004, 17:53   #14  
lagr221374
Гость
 
n/a
Более того, по-моему после выполнения функции потока окно тихо "умирает" (проверил Spy).
Старый 01.12.2004, 17:55   #15  
lagr221374
Гость
 
n/a
P.S. Вместе с потоком .
Старый 01.12.2004, 18:03   #16  
sergy is offline
sergy
Участник
 
62 / 10 (1) +
Регистрация: 12.02.2004
Адрес: Воронеж
Но иногда оно не умирает, а пишет сообщение об ошибке Can't crete tooltip ( type 2 ). Отчего лезет это сообщение?!!!
Старый 01.12.2004, 18:19   #17  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано sergy
Честно говоря не понял значение слова "нереентерабельный ".
Цитата:
Изначально опубликовано bucken
Модуль(Объект) считается реентерабильным, если его может использовать ОДНОВРЕМЕННО 2 и более потока.
Спасибо buken. Да, именно так.

Если у вас есть один параметр в классе (который по сути является семафором), то вы можете запускать только один поток из одного экземляра. А это стрельба из пушки по воробьям.

Потоки обычно нужны, чтобы распараллеливать процессы
Если нет распараллеливания, то зачем вам потоки?
Старый 01.12.2004, 18:21   #18  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано sergy
Но иногда оно не умирает, а пишет сообщение об ошибке Can't crete tooltip ( type 2 ). Отчего лезет это сообщение?!!!
вы пытаетесь общаться с пользователем в потоке.
например, выдаете ему сообщение или открываете форму.
а он не может никуда вывести ваше сообщение.
Старый 01.12.2004, 18:41   #19  
sergy is offline
sergy
Участник
 
62 / 10 (1) +
Регистрация: 12.02.2004
Адрес: Воронеж
Если я правильно понял значение реентерабильности, то в ClassDeclaration класса, который работает в потоки я не могу заводить переменные и построить работу класса таким образом, что в статической функции класса, которая указывается в run, я не могу создать экземпляр этого класса? На счет сообщения - оно появляется только после нескольких перезапусков потока.
Старый 01.12.2004, 18:54   #20  
sergy is offline
sergy
Участник
 
62 / 10 (1) +
Регистрация: 12.02.2004
Адрес: Воронеж
Кстати на счет общения с пользователем. Специально поставил вызов info() все нормально прошло
Теги
axapta, thread, потоки

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вызов форм методa из Thread класса vitaly85 DAX: Программирование 4 24.01.2009 03:48
Вызов метода базового класса Eldar9x DAX: Программирование 15 22.03.2008 19:10
передача курсора в два класса kitty DAX: Программирование 3 09.08.2006 13:21
Запустить метод класса loka DAX: Программирование 2 13.03.2006 15:40

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:31.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.