![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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)
| ||