tThread: насърчете ми мързела, моля

4 отговора 259 прегледа
#1

tThread: насърчете ми мързела, моля

tThread: насърчете ми мързела, моля :)

От хелпа не ми стана много ясно, кое е да ползвам за идентификация на нишките в приложението си tThread.ThreadId или tThread.Handle.

За сега ползвам tThread.ThredId. Прави ми впечетления, че под '98 е голямо положително ($FFFF37AB), а под 'XP нормално ($4332).
Та ако някой има опит или може да посочи критерии за избор - чакам с интерес.

Отговор
в отговор на NikB #2

Насърч, насърч... :-)

Ами това са си просто две различни неща. И двете трябва да са ти уникални, така че можеш с еднакъв успех да ползваш всяко едно от тях. Не съм 100% сигурен каква е разликата между тях, но мисля, че хендъла е уникален за системата като цяло (не само за тредовете). Моля, ако греша да ме поправите :-)

Отговор
в отговор на andrew_nikoloff #3

Re: Насърч, насърч... :-)

Handle-a като цяло (не само handle-a на Thread-овете) е, нека така го кажем, индекс в локалната дескрипторна таблица на процеса. Тоест той е вид указател. Специфичното в този случай е, че не може да се прехвърля през границите на процесите - дори и някой друг процес да се "докопа" до него, то той не може да направи нищо с този handle, защото в неговото адресно поле той е невалиден.

От друга страна ThreadID-то е уникален номер на thread-а в системата (в този случай и измежду процесите). Не е пред мен MSDN-a, но процес, изпълняващ се с администраторски права, ако получи този ThreadID, би трябвало да може да получи и валиден Thread handle, а следователно и да манипулира thread-a.

Отговор
в отговор на NikB #4

Re: tThread: насърчете ми мързела, моля

opredeleno izplozvai threadID, zashtoto edin process mojhe da ima 2 handle za edna i sashta thread. osven tova, mojhesh da "zatvorish" thread handle, pri tova thread-a shte prodalji da varvi.

Отговор
в отговор на grg #5

Логично е :)

Логично е, благодаря!
Знаех си, че не може да няма разлика в приложението и не се бях замислял, че хендлерът може да се анулира преди края на нишката. Въпреки, че не е много коректно.

Отговор