Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.01 c
14-27235
Tornado
2002-08-15 12:34
2002.09.09
Опрос


4-27266
Lex_!
2002-06-23 04:23
2002.09.09
Объясните как отловить сообщение чужой программы


1-27000
xyz
2002-08-22 22:07
2002.09.09
User.dat system.dat... как самому такую штуку сделать?


3-26877
SERY
2002-08-19 17:56
2002.09.09
Сортировка в базе данных “Paradox”


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




   Наверх