Переключение на Главную Страницу Страницы: 1 [2] 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) О лимите количества GDI и USER объектов (число прочтений - 61302 )
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #15 - 16. Мая 2007 :: 15:45
Печать  
Под разными именами конечно. Все таки домен Улыбка
Проблема вылазит не сразу, а под конец дня.


Ясно. Буду копать. Гемор конечно Печаль
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #16 - 18. Мая 2007 :: 08:35
Печать  
Проблема у меня оказывается гораздо интереснее.
Судя по таскманагеру кол-во GDI объектов увеличивается на один примерно каждые тридцать секунд. При этом 1С находится в фоне и ничего не делает.
В обработке ожидания никаких форм не открывается, только создаются объекты MetaDataWork, ODBCRecordSet.
Засада в общем Печаль
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #17 - 18. Мая 2007 :: 08:45
Печать  
А интервал обновления у тебе случаем не 30 сек.?
  
Наверх
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #18 - 18. Мая 2007 :: 08:54
Печать  
20 сек. примерно так и растут объекты.
Но в обработке у меня ничего нет.
Делается запрос к базе и если есть изменения в некоторых местах, то мне посылается письмо. Но изменений нет, соответственно код не выполняется.

Вот только в глобальнике вызов обработки идет так:
Служебное = СоздатьОбъект("Служебное");
Служебное.глОбработкаОжидания();

в контрукторе класса ничего. сам метод я уже написал почти ничего не делает.
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #19 - 18. Мая 2007 :: 08:59
Печать  
понаблюдал за своей. Не растет. Пробуй варианты...
хм. только главное окно:
USER/GDI => 549/314
Открыл журнал USER/GDI => 646/347
Закрыл USER/GDI => 549/323
Открыл  журналUSER/GDI => 646/347
ЗакрылUSER/GDI => 549/323
9 осталось объектов зарезервировано?

  
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #20 - 18. Мая 2007 :: 09:07
Печать  
Arta писал(а) 18. Мая 2007 :: 08:54:
Вот только в глобальнике вызов обработки идет так:
Служебное = СоздатьОбъект("Служебное");
Служебное.глОбработкаОжидания();

Это чистый объект или все-таки есть визуальная форма?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #21 - 18. Мая 2007 :: 09:19
Печать  
Я нашел  Смех
Иес!!!


В конструкторе этого класса у меня все-таки создавались объекты.
Сервис = СоздатьОбъект("Сервис");
Шрифт = Сервис.СоздатьШрифт("Tahoma");

Шрифт был переменной класса, но без Экспорта.
Прибил - утечек нет.

Альф, где косяк? Улыбка
  
Наверх
 
IP записан
 
Uzhast
1c++ power user
Отсутствует



Сообщений: 1341
Зарегистрирован: 30. Августа 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #22 - 18. Мая 2007 :: 09:24
Печать  
Arta писал(а) 18. Мая 2007 :: 09:19:
Альф, где косяк? Улыбка

Я, конечно, не Альф, но скажу. Косяк в отсутствии вызова Сервис.УдалитьШрифт.

Также косяк в том, что Сервис.СоздатьШрифт возвращает не объект, который сам удалит шрифт при собственном уничтожении, а код шрифта. А обязанность удаления возлагается на пользователя.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #23 - 18. Мая 2007 :: 09:24
Печать  
А УдалитьШрифт делаешь ?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #24 - 18. Мая 2007 :: 09:43
Печать  
Приехали. Сам дурак получается. Видел же оговорку Печаль


Всем спасибо, посыпаю голову пеплом.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #25 - 18. Мая 2007 :: 10:04
Печать  
По поводу объекта "Шрифт" можно обратить внимание на 1С++ - там реализован полноценный объект, который сам следит за уничтожением объектов.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #26 - 18. Мая 2007 :: 10:06
Печать  
А его можно подставлять в Сервис.ВыбратьЗначение?  Подмигивание
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #27 - 18. Мая 2007 :: 10:14
Печать  
Нельзя, т.к. у него нет свойства для получения хендла полученного шрифта, а ФормЕкс работает с хендлом напрямую Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #28 - 18. Мая 2007 :: 10:58
Печать  
Ясно. Вопрос исчерпан.

Хотя может вставить это свойство? Подмигивание
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: О лимите количества GDI и USER объектов
Ответ #29 - 18. Мая 2007 :: 11:31
Печать  
Не совсем уверен, что это будет правильно Улыбка
В этом случае нарушается инкапсуляция объекта, и возможны различные пользовательские ошибки.
Например, пользовательский код через Сервис::УдалитьШрифт сначала удалить шрифт через хендл, а затем деструктор будет удалять еще раз, и баг - ну и т.п.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 
ОтправитьПечать