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
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,837 / 3733 (182) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
нетути такового.
Старый 01.12.2004, 14:02   #3  
sergy is offline
sergy
Участник
 
62 / 10 (1) +
Регистрация: 12.02.2004
Адрес: Воронеж
Я так и думал
Тогда как правильно определить, что поток закончил выполнение функции, указанной в методе run(...)
Старый 01.12.2004, 14:24   #4  
lagr221374 is offline
lagr221374
Banned
 
961 / -49 (0) +
Регистрация: 31.08.2004
Адрес: Moscow
Наверное правильно будет, как в tutorialThread:
В конце выполняемой функции потока использовать setOutputParm для выставления флажка .
Соответственно, проверять флажок с помощью getOutputParm
Старый 01.12.2004, 14:26   #5  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,837 / 3733 (182) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
и получится нереентерабельный код
Старый 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 is offline
lagr221374
Banned
 
961 / -49 (0) +
Регистрация: 31.08.2004
Адрес: Moscow
Возможное (но корявенькое) решение:
Можно сделать флажок в какой - нибудь постоянной таблице и ставить его при завершении функции потока. Соответственно там, где нужно проверять его.
А где выполняется поток (сервер или клиент)?
Старый 01.12.2004, 15:20   #9  
sergy is offline
sergy
Участник
 
62 / 10 (1) +
Регистрация: 12.02.2004
Адрес: Воронеж
Поток выполняется на клиенте, клиентов много, таблица не пойдет. Что - то должно быть в самом классе Thread. Было бы описание
Старый 01.12.2004, 15:34   #10  
lagr221374 is offline
lagr221374
Banned
 
961 / -49 (0) +
Регистрация: 31.08.2004
Адрес: Moscow
Как я понимаю функция потока 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 is offline
lagr221374
Banned
 
961 / -49 (0) +
Регистрация: 31.08.2004
Адрес: Moscow
Более того, по-моему после выполнения функции потока окно тихо "умирает" (проверил Spy).
Старый 01.12.2004, 17:55   #15  
lagr221374 is offline
lagr221374
Banned
 
961 / -49 (0) +
Регистрация: 31.08.2004
Адрес: Moscow
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
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,837 / 3733 (182) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Цитата:
Изначально опубликовано sergy
Честно говоря не понял значение слова "нереентерабельный ".
Цитата:
Изначально опубликовано bucken
Модуль(Объект) считается реентерабильным, если его может использовать ОДНОВРЕМЕННО 2 и более потока.
Спасибо buken. Да, именно так.

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

Потоки обычно нужны, чтобы распараллеливать процессы
Если нет распараллеливания, то зачем вам потоки?
Старый 01.12.2004, 18:21   #18  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,837 / 3733 (182) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Цитата:
Изначально опубликовано 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, время: 02:56.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.