|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
14.05.2014, 16:31 | #1 |
Форумчанин
Регистрация: 11.05.2013
Сообщений: 154
|
ShellExecute. Генерация мусора
Всем привет.
При использовании функции ShellExecute в программе создается несколько потоков, и потребляется на ~1МБ оперативной памяти больше, т.е. если к примеру, программа занимала ~500 кб, то после использования этой функции программа начинает жрать уже ~1.5МБ оперативы, что не очень устраивает. Поэтому вопрос: есть ли способ завершить потоки (не трогая мои потоки) и освободить память, которые создала и нагрузила эта функция? |
14.05.2014, 16:38 | #2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Что курим? Мне отсыпьте... ShellExecute не создает потоки вообще, она выполняется в том же потоке, в котором вы её вызвали.
|
14.05.2014, 16:48 | #3 | |
Форумчанин
Регистрация: 11.05.2013
Сообщений: 154
|
Цитата:
Верхний - до использования функции, нижний - после. Последний раз редактировалось Xo66um; 14.05.2014 в 17:02. |
|
14.05.2014, 16:50 | #4 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
Xo66um
предыдущего оратора не слушай, он не в курсе, что вызов ShellExecute инициализирует внутреннюю подсистему ShellAPI. Оно и потоки создает, и кучу хэндлов открывает. Поэтому вопрос: есть ли способ завершить потоки (не трогая мои потоки) и освободить память, которые создала и нагрузила эта функция? документированного нет.
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
14.05.2014, 16:51 | #5 |
Форумчанин
Регистрация: 11.05.2013
Сообщений: 154
|
Rififi, может соображения по этому поводу есть?
|
14.05.2014, 16:56 | #6 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
Смириться.
либо отказаться от использования ShellExecute
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
14.05.2014, 16:57 | #7 |
Форумчанин
Регистрация: 11.05.2013
Сообщений: 154
|
Rififi, понятно
Отзыв добавил, спасибо. |
14.05.2014, 17:02 | #8 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
а у меня не создает ...
|
14.05.2014, 17:02 | #9 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Rififi, ни разу ничего не создавало у меня, лишь только запускалось то, что я указал.
Специально сейчас проверил, что на XP что на 8.1, как было 2 потока до выполнения, что после запуска и выполнения, такосталось 2. Памяти на 2 Мб приросло, всего-то. Другое дело, туева хуча всяких супир-мусоркомпонентиков, скинов и всего прочего где может понадобится ThreadTimer, для фоновой работыс эффектами, аля анимация ажалия, отпуская кнопки. А ещёантивирус лепит свой thrread к процессу, тоже самое делает и отладчик IDE, ещё всякий хлам от винды цепляется(Shell,он же explorer имеет такого добра валом). Стоит задуматься, в стерильно ли среде вы опыт провели, а потом задавать глупый вопрос, почемупосле shellexecute 100500 потоков зависает. Вообще, чего волнуетесь из-заэтого? Вы живете вмире многопроцессорных технологий и многопоточного исполнения, пусть там хоть 150 потоков висит, ваше ПО будет работать дальше. Последний раз редактировалось Человек_Борща; 14.05.2014 в 17:14. |
14.05.2014, 17:04 | #10 | |||
Форумчанин
Регистрация: 11.05.2013
Сообщений: 154
|
eval, не знаю почему.
Может версия ОСи другая, или версия Delphi. У меня Delphi 7, ОС Windows 7 (x64, Макс.) Цитата:
Ладно - потоки, в принципе не мешают. Больше всего не хочу нагружать оперативную память лишний раз, даже несмотря на то, какое железо в наше время делают. Цитата:
Цитата:
Вообще, это личное дело каждого, кому-то все-равно, сколько программа будет выполняться, сколько будет жрать ресурсов и т.д., а кому-то нет. Поэтому предлагаю на этом закрыть разговор на эту тему, если по вопросу в первом сообщении предложений нет. Последний раз редактировалось Xo66um; 14.05.2014 в 17:21. |
|||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перенос Edit в ShellExecute или переменые в ShellExecute | VMG | Общие вопросы Delphi | 5 | 11.02.2014 15:12 |
Сбрщик мусора в C++ | 220Volt | Общие вопросы C/C++ | 6 | 02.01.2014 10:25 |
сборщик мусора | goluzov | Общие вопросы C/C++ | 2 | 29.04.2012 15:25 |
Сборка мусора | EUGY | Общие вопросы C/C++ | 0 | 13.06.2011 21:26 |
Опрос: Сборщик мусора | Пепел Феникса | Общие вопросы по программированию, компьютерный форум | 15 | 20.04.2011 19:19 |