![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Добрый день. Есть код потока(упрощенно)
Код:
type TLoader = class(TThread) private FUrl:string; FHtml:string; FIdHttp:TidHTTP; FThreadHandle:THandle; protected procedure Execute; override; procedure ShowPage; function LoadHtmlPage(const Url:string):string; public constructor Create(AStr:string); destructor Destroy; override; end; .................... constructor TLoader.Create; begin inherited Create(False); FIdHttp := TIdHTTP.Create(nil); FreeOnTerminate := True; Self.Priority := tpNormal; FUrl:=AStr; FThreadHandle:=(*вот тут непонятно, где взять значение дескриптора?*); end; .............. procedure TLoader.ShowPage; begin Main.Label3.Caption:='Page Loaded'; Main.Memo1.Lines.Add(FHtml); Main.Label2.Caption:=IntToStr(FThreadHandle); (*тут нужно отобразить дескриптор потока*) end; все чего удалось накопать это: Код:
var HandleChange: THandle; begin HandleChange := FindFirstChangeNotification( PChar(FPath), False, FILE_NOTIFY_CHANGE_FILE_NAME + FILE_NOTIFY_CHANGE_ATTRIBUTES ); //но это не то что нужно Вопрос: откуда и как получить значение дескриптора потока? |
#2
|
|||
|
|||
![]() Ну хоть бы немного сам в гугле порылся...
http://docwiki.embarcadero.com/Libra...TThread.Handle Кстати, а нафига тебе этот хэндл? Что ты собрался с ним делать? |
#3
|
|||
|
|||
![]() полдня хуглил:
FThreadHandle:=Self.Handle; Однако если запустить "Отладочное окно -> Потоки" то число которое получается из FThreadHandle:=Self.Handle; отличается от тех значений что видны в отладочном окне. и как это понимать? дескриптор потока нужен для того чтобы если поток зависнет(из за ИНДИ загрузчика - такое бывает) принудительно уничтожить поток, по дескриптору |
#4
|
||||
|
||||
![]() оно?
![]() так что тут не ясно? у TThread есть Handle и есть ThreadID. еще лучше почитать статью почему не рекомендуется убивать поток. Пишу программы за еду. __________________ |
#5
|
|||
|
|||
![]() Цитата:
когда поток зависает и когда таких потоков много то что еще можно сделать? перезагрузка программы - не вариант |
#6
|
||||
|
||||
![]() Цитата:
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
Этот пользователь сказал Спасибо Aristarh Dark за это полезное сообщение: | ||
Pcrepair (28.03.2013)
|