Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.02;
Скачать: CL | DM;

Вниз

существование обьекта   Найти похожие ветки 

 
feniks   (2002-12-20 13:08) [0]

Как правильно определить существование обьекта, к примеру - потока? У меня создается поток, в него передается строка запроса, и поток потихоньку с низким приоритетом запрос отрабатывает. После сам умирает. Но тут - новая порция данных с сокета. Если поток существует - ее надо сложить в буфер, если нет - создавать и запускать новый.
Проверка на nil неэффективна, даже вызывает ошибку если обьект не определен. По логике - если not suspended, но тоже не проходит, иногда происходит попытка создания нового потока, когда старый еще существует но уже suspend.
спасибо за советы.


 
AlexSV ©   (2002-12-20 13:46) [1]

Решал как-то аналогичную задачу, только без пополнения буфера и suspend"а.
Если я правильно понял, то FreeOnTerminate := True.
В этом случае необходимо установить в nil указатель на поток когда он разрушается.
Если так, то из destructor"а пошли объекту, в котором храниться указатель на поток message, а в обработчике message"а установи указатель в nil.
Если не понятно объяснил, то пиши на mail, вышлю пример.


 
Digitman ©   (2002-12-20 13:48) [2]


> После сам умирает


Не давай ему самому (бесконтрольно со стороны создавшего его кода) "умирать". Пусть он "крутится" в цикле (в Execute-процедуре), ожидая новой строки запроса. Есть новая строка - исполняет и снова ждет, нет - просто ждет (как минимум проверяя св-во Terminated)


 
Polevi ©   (2002-12-20 13:48) [3]

hEvent:=CreateEvent(nil,false,false,nil)

TSomeThread.Execute;
begin
SetEvent(hEvent);
try
..
..
finally
ResetEvent(hEvent);
end;
end;

в коде проверяй, если ивент сигналит - значит поток работает


 
feniks   (2002-12-20 16:11) [4]

Спасибо большое, коллеги. Все понятно, сделаю.



Страницы: 1 вся ветка

Текущий архив: 2003.01.02;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.006 c
1-1823
ZORRO
2002-12-20 09:49
2003.01.02
Сайт


1-1827
MFV
2002-12-21 00:17
2003.01.02
Собственный объект для вставки в Word


6-1843
s002156Shurik
2002-11-02 01:52
2003.01.02
Потки в сервер сокетах.


3-1747
Valeron
2002-12-11 11:52
2003.01.02
Не сохраняются данные при использовании ODBC.


14-1883
Demoniac
2002-12-13 23:12
2003.01.02
:) nichego sebe. kto zdes latinicu znayet?