Форум: "Начинающим";
Текущий архив: 2006.01.29;
Скачать: [xml.tar.bz2];
ВнизНаименьшее значение Handle. Найти похожие ветки
← →
Новичек © (2006-01-11 13:44) [0]Кто-нибудь знает, какое минимальное значение может принять Handle (без учета зарезервированных значений)?
← →
Johnmen © (2006-01-11 13:48) [1]Что такое Handle?
← →
Новичек © (2006-01-11 13:49) [2]Дескриптор.
← →
alex_*** © (2006-01-11 13:51) [3]а зачем тебе оно? Все равно системой назначается
← →
Новичек © (2006-01-11 14:00) [4]2alex_***
Имеется ввиду, что конкретный минимум на разных ОС (или на разных машинах) может отличаться?
← →
Johnmen © (2006-01-11 14:16) [5]>Дескриптор.
Дескриптор чего?
← →
Новичек © (2006-01-11 14:22) [6]
> Johnmen
В общем случае - чего угодно.
← →
Digitman © (2006-01-11 14:24) [7]
> Новичек © (11.01.06 14:22) [6]
и зачем знание этого может понадобиться ?
← →
Новичек © (2006-01-11 14:27) [8]
> Digitman
Например, для отслеживания существования объекта извращенным методом :-)
← →
Digitman © (2006-01-11 14:32) [9]
> Новичек © (11.01.06 14:27) [8]
> извращенным методом
Непосредственным доступом к таблицам дескрипторов что ли ?
А без извращений - это уже не модно ? Или как ?)
← →
Новичек © (2006-01-11 14:38) [10]
> Digitman
Лень. А строчкой типаwhile SomeHadle > MinValue do Application.ProcessMessages;
IMHO, удобней :-)
← →
Digitman © (2006-01-11 14:41) [11]
> строчкой типа
> while SomeHadle > MinValue do Application.ProcessMessages;
>
> IMHO, удобней
Блажь какая-то ..
Ну и куда сей шедевр программерской мысли вставить ?
Продемонстрируй хотя бы в псевдокоде, чтобы можно было понять, в какой момент и при каких твоих действиях выполнится условие SomeHadle <= MinValue
← →
Новичек © (2006-01-11 14:44) [12]
> Digitman
SomeHandle := BeginThread(nil, 0, @SomeFunction, nil, 0, idThread);
while SomeHadle > MinValue do Application.ProcessMessages;
← →
Digitman © (2006-01-11 14:48) [13]
> Новичек © (11.01.06 14:44) [12]
Ну и где из приведенного фрагмента кода видно, когда и при каких обстоятельствах значение SomeHadle станет меньшим или равным значению MinValue ?
← →
Johnmen © (2006-01-11 14:49) [14]>Новичек © (11.01.06 14:44) [12]
–2147483648
← →
Игорь Шевченко © (2006-01-11 14:54) [15]
> какое минимальное значение может принять Handle
4
← →
Новичек © (2006-01-11 14:56) [16]
> Digitman
Я и сам думал, что при вызове EndThread SomeHandle изменяется. Оказалось - не тут-то было! Он остается прежним! Блин... Развел дискуссию, а зря... Придется по старинке делать.
> Johnmen
Handle не может быть отрицательным.
← →
Johnmen © (2006-01-11 15:06) [17]>Новичек © (11.01.06 14:56) [16]
Где про это написано? :)
А указанная ф-ия возвращает integer.
← →
Новичек © (2006-01-11 15:13) [18]
> Johnmen
THandle is the type for handles to operating system resources.
Unit
System
Delphi syntax:
type THandle = LongWord;
Description
THandle is a 32-bit value that uniquely identifies a resource.
----------------------------------------------------------
Fundamental integer types include Shortint, Smallint, Longint, Int64, Byte, Word, and Longword.
Fundamental integer types
Type Range Format
Shortint -128..127 signed 8-bit
Smallint -32768..32767 signed 16-bit
Longint -2147483648..2147483647 signed 32-bit
Int64 -2^63..2^63-1 signed 64-bit
Byte 0..255 unsigned 8-bit
Word 0..65535 unsigned 16-bit
Longword 0..4294967295 unsigned 32-bit
← →
Digitman © (2006-01-11 15:16) [19]
> думал, что при вызове EndThread SomeHandle изменяется
Думать нужно после внимательного прочтения документации.
> Он остается прежним
С какого перепугу содержимое переменной SomeHandle изменится ?
Что ты туда записал, то там и будет лежать вплоть до момента пока ты не запишешь туда новое значение.
А значение хэндла у тебя там лежит или что-то другое - по-барабану.
> Придется по старинке делать
Не "по старинке", а как положено - с использованием ф-ций синхронизации и закрытием хэндла по завершению работы трэда.
Завершение же работы трэда вовсе не означает "смерть" его как объекта - этот объект продолжает существовать вплоть до уменьшения сч-ка ссылок на него до нуля... CloseHandle, кроме всего прочего, как раз и выполняет декремент сч-ка ссылок на ОС-объект (в т.ч. и трэд).
← →
Новичек © (2006-01-11 15:20) [20]
> Digitman
> CloseHandle, кроме всего прочего, как раз и выполняет декремент
> сч-ка ссылок на ОС-объект (в т.ч. и трэд).
Как я мог забыть эту функцию?!!! Ну, сударь, спасибо! Будете в Новороссийске - с меня пиво.
← →
Johnmen © (2006-01-11 15:34) [21]>Новичек © (11.01.06 15:13) [18]
>THandle is the type for handles to operating system resources.
Ты же спрашивал про Handle ! А не про THandle !
← →
Digitman © (2006-01-11 15:43) [22]
> Как я мог забыть эту функцию?
Не столь это страшно .. чревато лишь утечками ресурсов ..
Важней другое - тебе, очевидно, требуется определить момент завершения работы трэд-функции, а это как раз и делается "по старинке", с помощью ф-ций синхронизации
← →
Новичек © (2006-01-11 15:44) [23]
> Digitman
Да, я пользовался семафором, а лень предложила поискать другой вариант :-)
← →
Digitman © (2006-01-11 15:46) [24]На кой ляд здесь семафор - ума не приложу.
Хэндл объекта-треда как раз и есть хэндл того самого объекта синхронизации, что допустим в кач-ве параметра в ф-циях синхронизации
← →
Anatoly Podgoretsky © (2006-01-11 16:37) [25]function BeginThread(SecurityAttributes: Pointer; StackSize: LongWord; ThreadFunc: TThreadFunc; Parameter: Pointer; CreationFlags: LongWord; var ThreadId: LongWord): Integer;
← →
evvcom © (2006-01-11 16:53) [26]On Windows, BeginThread returns the Windows thread handle. A return value of 0 indicates failure.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.01.29;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.034 c