Вниз
Скачать: CL | DM;

Отличие Handle и ThreadId   Найти похожие ветки 

 
panov ©   (2002-01-09 17:49) [0]

Чем отличаются вышеуказанные свойства в классе TThread ?
Для чего используется каждый из них?


 
Юрий Зотов ©   (2002-01-09 18:01) [1]

Это те самые ID и Handle, которые назначила потоку система. Картина здесь та же, что с ID и Handle для процессов:
ID - уникальный номер во всей системе.
Handle - действительно в контексте данного процесса.

Используются, например, для вызова функций API.


 
panov ©   (2002-01-09 18:05) [2]

Спасибо.
Получается, что для доступа к потоку нужно использовать ThreadId, а не Handle, например, для посылки сообщений в поток?


 
panov ©   (2002-01-09 18:07) [3]

И значит ли это, что Handle потока совпадает с Handle процесса, в контексте которого работает поток?


 
Юрий Зотов ©   (2002-01-09 18:58) [4]

> для доступа к потоку нужно использовать ThreadId, а не Handle

Для доступа к потоку, КАК К ОБЪЕКТУ Delphi нужно использовать обычную ссылку на этот объект. А для доступа к потоку ЧЕРЕЗ ФУНКЦИЮ API нужно использовать то, что требует эта функция в своих параметрах. Это может быть и ID, и Handle.

> например, для посылки сообщений в поток

Если сообщение посылается ОКНУ, созданному потоком, то нужно использовать хэндл этого ОКНА. А если используется PostThreadMessage, то там четко сказано: первый параметр - ID.

> И значит ли это, что Handle потока совпадает с Handle
> процесса, в контексте которого работает поток?

Нет, конечно. Процесс и поток - это РАЗНЫЕ объекты ядра, поэтому и хэндлы у них тоже РАЗНЫЕ. Кроме того, процесс может иметь НЕСКОЛЬКО потоков, как же у всех у них могут быть одинаковые хэндлы?


 
panov ©   (2002-01-09 19:27) [5]

Спасибо большое.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.006 c
1-90319
Tor
2002-01-08 22:42
2002.01.28
Массивы объектов


1-90247
Dmitriy_R
2002-01-09 13:56
2002.01.28
(IntToStr & StrToInt) Undeclared Identifier Почему?


6-90338
Nemo
2001-10-29 09:27
2002.01.28
Тонууу..уу, SOS...SOS!!!!! Delphi mans, help me пожалуйста


1-90298
Vacheslav
2002-01-09 19:49
2002.01.28
Подскажите, в чем ошибка: задаю цикл


3-90210
Грифон
2001-12-23 22:26
2002.01.28
SQL




   Наверх