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

Вниз

Выполнение функции в отдельном потоке   Найти похожие ветки 

 
VID ©   (2002-08-28 21:48) [0]

Есть простая функция:
Function MakeSomeThing(InParam1:String; InParam2:Integer):String;
begin
Result := InParam1+IntToStr(InParam2);
end;

и есть BeginThread...

Насколько я понял, beginthread используется для того, что бы выполнить какую-либо функцию не в основном потоке приложения, а в дополнительном.

Но как назло, в хелпе маловато написано про эту функцию.
В-общем, вопрос:
Как правильно выполнить вышеуказаннюу функцию (MakeSomeThing) в отдельном потоке ? Причём не следует забывать про параметры которые обязательно должны быть переданы функции MakeSomeThing.


 
Старый паскалист   (2002-08-28 22:33) [1]

Вообще-то в дельфях обычно с потоками работают через TThread:
(А ф-я BeginThread вызывается в его конструкторе)

type
TMSTThread = class(TThread)
private
FInParam1: string;
FInParam2: Integer;
FResult: string;
public
constructor CreateWithArgs(AInParam1: string; AInParam2: Integer; CreateSuspended: Boolean);
// begin
// FInParam1 := AInParam1;
// FInParam2 := AInParam2;
// FreeOnTerminate := True; // False;
// Create(CreateSuspended);
// end;

procedure Execute; override;
// begin
// FResult := MakeSomeThing(FInParam1, FInParam2);
// // Как нибудь сообщить основному потоку, что работа
// // завершена (путём посылки сообщения или
// // выполнения синхронизованного метода, что,
// // в сущности, то же самое).
// end;
end;


Использовать BeginThread ещё имело бы, может быть, смысл, если бы у тебя ф-я была с одним аргументом - а так тебе всё равно придётся функцию-оболочку городить.


 
VID ©   (2002-08-28 23:37) [2]

БОЛЬШОЕ спасибо :)



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

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

Наверх




Память: 0.47 MB
Время: 0.011 c
14-27204
limon
2002-08-13 15:38
2002.09.09
Главбух-2


14-27197
Malder
2002-08-13 23:44
2002.09.09
Delphi - как оболочка для написаня СУБД


8-27130
Alucard
2002-05-07 15:47
2002.09.09
Flash в дельфи


3-26903
npAKtuk
2002-08-20 07:32
2002.09.09
Импорт в Access из CSV


1-27092
Lamer86
2002-08-28 17:55
2002.09.09
Как отлавить перемещение, удаление и переименование файлов