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

Вниз

Такой вот вопрос   Найти похожие ветки 

 
Nick-From   (2002-11-09 21:38) [0]

Есть тело потока:

function Execute (param: TMyPtr):Dword;
var
r: integer;
begin
r := param^;
if r > 0 then Result := 1
else Result :=0;
end;

,где TMyPtr = ^integer;

и есть процедура, вызывающая поток:

procedure TForm1.Button1Click(Sender: TObject);
var
SubThread, SubThreadID: THandle;
param: ^integer;
begin
Getmem(param, 4);
param^ := StrToInt(Edit1.text);


SubThread := CreateThread ( nil,
0,
@Execute,
param,
CREATE_SUSPENDED,
SubThreadID
);
ResumeThread(SubThread);
end;

в процессе выполнения которой возникает ACCESS VIOLATION на строке r := param^;

Вроде ведь параметры передаю правильно.
В чем проблема, может кто знает?


 
Ihor Osov'yak   (2002-11-09 22:28) [1]

function Execute (param: TMyPtr):Dword; stdcall;


Еще две некритические ошибки: нет освобождения памяти и не проверки на успешность getmem;



 
Nick-From   (2002-11-10 01:27) [2]

Спасибо, заработало :)

А как взять возвращаемый параметр:
IntNumber := ResumeThread(SubThread); ???


 
BSD   (2002-11-11 14:36) [3]

После создания и запуска :
IntNumber:=WaitForSingleObject(SubThread,INFINITE);


 
paul_shmakov   (2002-11-12 13:34) [4]

2 BSD:
нет, не так.

SubThread := CreateThread(...);
// ResumeThread(SubThread) если использовался флаг CREATE_SUSPENDED
WaitForSingleObject(SubThread, INFINITE);
GetExitCodeThread(SubThread, @IntNumber);
CloseHandle(SubThread);



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

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

Наверх




Память: 0.44 MB
Время: 0.006 c
1-86000
Nimda
2002-12-16 12:52
2002.12.26
Свой TrackBar


3-85795
Wic42
2002-12-06 00:07
2002.12.26
Delphi6-DBF


6-86060
Beglec
2002-10-29 19:09
2002.12.26
Не подскажите где можно взять котировки FOREX для delphi


1-85891
DeMoN-777
2002-12-16 20:05
2002.12.26
Ini files


1-85971
WCM
2002-12-15 08:25
2002.12.26
Динамические массивы 2





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский