Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1137064344
Practicant
2006-01-12 14:12
2006.01.29
Узнать ширину текста...


15-1136735854
antonn
2006-01-08 18:57
2006.01.29
Делаю MUI, есть пара вопросов


2-1136924395
Glex
2006-01-10 23:19
2006.01.29
Координаты мыши относительно Top-Left формы?


10-1112846482
Demn
2005-04-07 08:01
2006.01.29
Plugin под IE


15-1136303618
tesseract
2006-01-03 18:53
2006.01.29
Цветокоррекция





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский