Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

После завершения основного потока в приложении остаются висеть дополнительные

7
24 сентября 2011 года
@pixo $oft
3.4K / / 20.09.2006
В программе используется вызов SHBrowseForFolder.После завершения работы программы(вернее,непосредственно перед return) наблюдается такая картина:

Эти потоки создаются сразу после вызова означенной функции,и так и остаются висеть,т.е. после return выполнение программы продолжается.Бряк даёт следующий результат:

Т.е. видно,что завершился только основной поток(ну и WmiFreeBuffer).Через некоторое время отмирает StringFromGUID2,но легче от этого не становится,ибо 2 одноимённых остаются висеть(потом отмирает 2й,но это минуты через 3-4)
Посоветовали вызывать OleInitialize/OleUninitialize(да и я сам,когда читал про SHBrowseForFolder,видел там рекомендацию по вызову (Co/Ole)(Un-/Initialize),но пробы положительного результата не дали)

Что самое интересно,эксперименты,поставленные у меня дома/на работе и у 2х товарищей(по соображениям безопасности я их имена разглашать не буду:)),дали результаты 50/50:на работе и у 1го товарища программа работает без проблем(тестировал на работе–там эти потоки просто не создаются,т.е. в момент выполнения моего кода они уже завершены;у этого товарища,надо полагать,та же ситуация),а дома и у 2го товарища–всё как описано выше(т.е. не только в одном месте проблема)
Подскажите,в чём может быть затык и как его побороть?(в конференции тов. Phodopus что-то писал про какие-то помехи,но я его не совсем понял)
14
25 сентября 2011 года
Phodopus
3.3K / / 19.06.2008
Какие помехи? Я тогда уже нажрался что-ли?
А в какой ОС проблема то наблюдается?
7
25 сентября 2011 года
@pixo $oft
3.4K / / 20.09.2006
Ну ты мне что-то толкал по поводу того,почему не на всех компьютерах такое возникает.Насчёт твоего состояния не в курсе:)

Проблема наблюдается и одновременно не наблюдается на XP
14
25 сентября 2011 года
Phodopus
3.3K / / 19.06.2008
Тебе давно пора оторвать руки за "оптимизацию". Прочь от entry point линкера!
7
25 сентября 2011 года
@pixo $oft
3.4K / / 20.09.2006
Но-но-но,не так радикально:) Что плохого в том?
5
25 сентября 2011 года
hardcase
4.5K / / 09.08.2005
Это точно не потоки штатного пула?
7
25 сентября 2011 года
@pixo $oft
3.4K / / 20.09.2006
Что за штатный пул?
Прошу заметить,что на работе эти потоки не создаются(или создаются,но исчезают сразу перед возвратом из функции)
5
25 сентября 2011 года
hardcase
4.5K / / 09.08.2005
Цитата: @pixo $oft
Что за штатный пул?
Прошу заметить,что на работе эти потоки не создаются(или создаются,но исчезают сразу перед возвратом из функции)


ThreadPool который есть в каждом процессе.

7
25 сентября 2011 года
@pixo $oft
3.4K / / 20.09.2006
Нет,это наверняка не он.Не может же на одной системе на разных машинах такое кардинально разное поведение быть!
Кстати,обнаружил такую же проблему в ещё одном приложении,только в нём GetOpenFileName используется и имена потоков другие
14
25 сентября 2011 года
Phodopus
3.3K / / 19.06.2008
Я тебе еще раз говорю - верни EntryPoint линкеру как было до тебя. Не меняй там где не понимаешь к чему приведет. Ты весь стек угрохал.
7
25 сентября 2011 года
@pixo $oft
3.4K / / 20.09.2006
Как же угрохал?Там ведь void,параметров нет,да и _cdecl…(но,коли я заблуждаюсь,хотелось бы достичь понимания:))

Ну да не суть.Я специально поэкспериментировал–создал новый проект и включил в него лишь .cpp/.h:та же фигня,чесслово
[COLOR="#c0c0c0"](думаю,писать,что все остальные проекты работают нормально,особо и не нужно)[/COLOR]
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог