Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
 |  |
[C++] Почему поток не завершает своё выполнение?? 05.08.01 17:27 Число просмотров: 910
Автор: myrmidon Статус: Незарегистрированный пользователь
|
|
мля, фишка в том, что я накада не вызываю CloseHandle, обычно без него всё работает!! да и у этого потока, если убрать внутренности, то всё нормально!!! а с внутренностями такая вот муйня!
|
|
<programming>
|
[C++] Почему поток не завершает своё выполнение?? 05.08.01 15:31
Автор: myrmidon Статус: Незарегистрированный пользователь
|
есть обычный поток, созданный как HANDLE h = CreateThead
в конце потока есть return 0;
Сам поток совершает некоторые действия, я точно знаю что он доходит до return 0;
но потом происходит следующая вещь: ProcessViewer показывает во время выполнения потока что в программе 2-а потока, тот поток, доходит до return 0; но ProcessViewer всё равно показывает что у программы 2-а потока, причём прога как то подвисает и её нельзя убить ProcessViewer'ом!!
Что бы это могло быть???
|
 |
[C++] Почему поток не завершает своё выполнение?? 05.08.01 15:35
Автор: duh Статус: Незарегистрированный пользователь
|
> есть обычный поток, созданный как HANDLE h = CreateThead > в конце потока есть return 0; > Сам поток совершает некоторые действия, я точно знаю что он > доходит до return 0; > но потом происходит следующая вещь: ProcessViewer > показывает во время выполнения потока что в программе 2-а > потока, тот поток, доходит до return 0; но ProcessViewer > всё равно показывает что у программы 2-а потока, причём > прога как то подвисает и её нельзя убить ProcessViewer'ом!! > Что бы это могло быть???
а ты зделал CloseHandle?
|
 |  |
[C++] Почему поток не завершает своё выполнение?? 05.08.01 17:27
Автор: myrmidon Статус: Незарегистрированный пользователь
|
|
мля, фишка в том, что я накада не вызываю CloseHandle, обычно без него всё работает!! да и у этого потока, если убрать внутренности, то всё нормально!!! а с внутренностями такая вот муйня!
|
 |  |  |
типа наезд 06.08.01 01:28
Автор: Qrot Статус: Незарегистрированный пользователь
|
> мля, фишка в том, что я накада не вызываю CloseHandle, слушай, мил человек, ты доки читать пробовал?
а то по твоим постингам складывается впечатление, что ты все познаешь на собственном анусе.
кстати, если при пустом потоке все пашет, то наверно ошибка где-нить в теле потока, нет?
|
 |  |  |  |
типа наезд 06.08.01 02:09
Автор: myrmidon Статус: Незарегистрированный пользователь
|
|
вот я и говарю, что может быть такова в теле потока, что бы такая муйня происходила?
|
 |  |  |  |  |
типа наезд 06.08.01 08:53
Автор: ggg <ggg> Статус: Elderman
|
> вот я и говарю, что может быть такова в теле потока, что бы > такая муйня происходила?
а кода много ? :)
а то может проще его здесь написать
а насчёт количества потоков - если у тебя дебажная версия собрана, то там может быть что угодно
если он доходит до return нормально а потом виснет, то можно предположить что ты где то в стек насрал :) (адрес возврата неправильный)
|
 |  |  |  |  |  |
[C++] типа наезд 06.08.01 21:39
Автор: myrmidon Статус: Незарегистрированный пользователь
|
Да!
до return'а у меня стоит месагбох, и 100% ретурн возвращает 0, но.....
А как я мог настрать в стек?? чем??
|
 |  |  |  |  |  |  |
[C++] типа наезд 07.08.01 13:34
Автор: ggg <ggg> Статус: Elderman
|
ты говорил что с пустым потоком всё работает
попробуй по частям добавлять код
ну закоментарь всё остальное
когда наестся - значит нашёл то что нужно :)
|
 |  |  |  |  |
Почему при работе с БД в потоке происходит RuntimeError 06.08.01 05:31
Автор: Паша Статус: Незарегистрированный пользователь
|
|
Я пытаюсь в отдельном потоке произвести запись в бузе данных DAO, тоесть юзаю CDaoRecordset,CDaoDatabse и т.д. Но происходит какой-то error прямо в-фции поиска, и никаким исключением этот error не обрабатывается. Та-же операция вне потока проходит на ура. Вот такая шляпа, может кто уже такую видел?
|
 |  |  |  |  |  |
что-то такое было... 06.08.01 15:43
Автор: ukv Статус: Незарегистрированный пользователь
|
> Я пытаюсь в отдельном потоке произвести запись в бузе > данных DAO, тоесть юзаю CDaoRecordset,CDaoDatabse и т.д. Но > происходит какой-то error прямо в-фции поиска, и никаким > исключением этот error не обрабатывается. Та-же операция > вне потока проходит на ура. Вот такая шляпа, может кто уже > такую видел?
Подобная вещь у меня была (только не с базами, а с производным классом
от CView). Никак не получалось пользоваться некоторыми методами этого класса не из того потока, в котором он был создан. Разбор показал, что это происходит из-за реализации класса, существенно использующей TLS (thread local storage).
Может, у такой реализации и есть свои преимущества - тут я не специалист. Если дело в этом, то пиши пропало. В моем случае требовалось всего лишь послать окну update, а это можно сделать и при помощи PostMessage.
|
 |  |  |  |  |  |  |
А я пробывал класс в потоке создавать 06.08.01 23:33
Автор: Паша Статус: Незарегистрированный пользователь
|
|
Я пробывал класс в потоке создавать и создавать отдельно от потока но ничего не получалось.
|
|
|