Форум: "Основная";
Текущий архив: 2002.01.28;
Скачать: [xml.tar.bz2];
ВнизОтличие 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 вся ветка
Форум: "Основная";
Текущий архив: 2002.01.28;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.004 c