Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.02;
Скачать: CL | DM;

Вниз

Правильное закрытие Handl - а   Найти похожие ветки 

 
learner ©   (2006-06-11 01:43) [0]

Помогите разобраться.
Я создаю нить, которая выводит сообщение и закрываю Handle нити.
Но я его закрываю раньше, чем нить завершиться.
Разве так можно ?
Если нет, то как надо действовать ?
function MessBoxThread(const pMess:PChar):DWord; stdcall;
begin
MessageBox(0,pMess,PChar(ParamStr(0)),MB_OK or MB_ICONINFORMATION);
ExitThread(0);
Result:=0;
end;

procedure MessBox(const Mess:string);
var
ThreadHandle,ThreadID:DWord;
begin
ThreadHandle:=CreateThread(nil,0,@MessBoxThread,PChar(Mess),0,ThreadID);
if ThreadHandle<>0 then CloseHandle(ThreadHandle);
end;


 
DrPass ©   (2006-06-11 02:27) [1]


> Разве так можно ?

Можно, но абсолютно ни к чему. CloseHandle не убьет поток, пока он выполняется, зато убъет единственный дескриптор, с помощью которого ты можешь управлять этим потоком. Убивай после того, как поток отработает (тут тебе пригодится WaitForSingleObject)



Страницы: 1 вся ветка

Текущий архив: 2006.07.02;
Скачать: CL | DM;

Наверх




Память: 0.46 MB
Время: 0.04 c
10-1121236477
xmed
2005-07-13 10:34
2006.07.02
трехзвенная архитектура => Oracle + Автоинкремент


15-1149451695
dimodim
2006-06-05 00:08
2006.07.02
Ось на старом компе или как его замучать?


15-1149655808
Yanis
2006-06-07 08:50
2006.07.02
Как узнать build по дистрибутиву Windows?


15-1147255423
Колдун
2006-05-10 14:03
2006.07.02
Написание многопотчной качалки


1-1148326889
Ortodocs
2006-05-22 23:41
2006.07.02
Ошибка в DLL при помещении её в HKLM->....->AppInit_DLLs