powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как обнилить адресс потока в памяти
5 сообщений из 5, страница 1 из 1
Как обнилить адресс потока в памяти
    #40061463
Ildar007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Такой вопрос уважаемые, как обнилить адрес потока?
У меня есть класс TThreadImage,

В дополнительном потоке я пытаюсь записать в адрес указателя значения nil(даже freeAndNil не помог)
Код: pascal
1.
2.
3.
4.
5.
6.
destructor TThreadImage.Destroy;
begin
  //FreeAndNill;
  FillChar(self,sizeOf(Self),nil);
  inherited;
end;



Потом в главном потоке, после уничтожения потока я узнать адрес потока

Код: pascal
1.
2.
3.
    addr := DWord(Pointer(ThreadArray));
    if DWord(Pointer(ThreadArray[I])) = nil then // тут невозможно проверить на значение nill
    ThreadArray[I].WaitFor;




Но у меня почему-то вместо nil возвращается потока, который был после конструктора

(p.s поставил только необходимые участки кода. )
...
Рейтинг: 0 / 0
Как обнилить адресс потока в памяти
    #40061471
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ildar007,

Указатель на объект потока надо обнулять извне. Там, где этот поток создается/убивается. Если это вообще надо, в чем я сомневаюсь.
...
Рейтинг: 0 / 0
Как обнилить адресс потока в памяти
    #40061540
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ildar007,

Да-да. Сначала в деструкторе себя пытаемся "занилить" а потом зовем inherited... В котором вполне может быть что-то вроде:

Код: pascal
1.
2.
   if Self.SomeFlag then  ...
      Self.DoFinalizeSomeStructure;


Какой-то извращенный способ самоубийства...
...
Рейтинг: 0 / 0
Как обнилить адресс потока в памяти
    #40061541
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DarkMaster
Ildar007,

Да-да. Сначала в деструкторе себя пытаемся "занилить" а потом зовем inherited... В котором вполне может быть что-то вроде:

Код: pascal
1.
2.
   if Self.SomeFlag then  ...
      Self.DoFinalizeSomeStructure;



Какой-то извращенный способ самоубийства...
Ну так FreeAndNill( Self ) в деструкторе не помог же.
...
Рейтинг: 0 / 0
Как обнилить адресс потока в памяти
    #40061578
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock
Какой-то извращенный способ самоубийства...
Ну так FreeAndNill( Self ) в деструкторе не помог же.[/quot]не конечно, inherited вызывает не через VMT, убиваться тоже надо уметь


Ildar007 - 22296606
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как обнилить адресс потока в памяти
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]