Форум: "Начинающим";
Текущий архив: 2011.06.05;
Скачать: [xml.tar.bz2];
ВнизРабота с AsyncCall Найти похожие ветки
← →
Sashka (2011-03-01 00:14) [0]задача - в пуле потоков выполнять определенную функцию с разными параметрами.
Исп. AsyncCall
примерно так...
function WaitMe (a : Integer) : Integer;
begin
// something do
Result := 0;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Alist : array of IAsyncCall;
i,j : Integer;
begin
SetLength(Alist,3);
j := 0;
while (j < 20) do
begin
for i := 0 to High (Alist) do
if (Alist[i] = nil) or ( Alist[i].Finished) then
begin
AList[i] := AsyncCall(@WaitMe,j);
inc (j);
end;
Application.ProcessMessages;
end;
while AsyncMultiSync(Alist,True,10) = WAIT_TIMEOUT do
begin
Application.ProcessMessages;
end;
end;
Логика нужна примерно такая как описывается: берется свободный поток в пуле и передается функция на выполнения.
Но при этом ???
1. Корректно ли представленная логика?
2. Я указываю массив из трех AList но число потоков, которое я вижу в итоге может дойти до GetMaxAsyncCallThreads
Что по моему странно, ведь я жду завершения задания по Alist[i].Finished
Почему увеличивается число потоков ??? При этом потоки "не уничтожаются" хотя в исходнике ASyncCall стоит FreeOnterminate := true;
Поясните пож-ста разницу между LocalAsyncCall() и AsyncCall()
← →
Sashka (2011-03-01 13:08) [1]Удалено модератором
← →
Inovet © (2011-03-01 13:27) [2]> [1] Sashka (01.03.11 13:08)
> Up
Чего ап, полсуток прошло всего, кто хотел - прочитал.
← →
Dennis I. Komarov © (2011-03-01 15:28) [3]АП, это дядя Толя. Вот придет и будет сердится...
← →
Противный (2011-03-01 15:37) [4]>> Sashka (01.03.11 13:08) [1] Up
>> Dennis I. Komarov © (01.03.11 15:28) [3] АП, это дядя Толя.
UP - Uncle P? Ты это кого "П" обозвал только что???
← →
Leonid Troyanovsky © (2011-03-01 19:01) [5]
> Sashka (01.03.11 00:14)
> Поясните пож-ста разницу между LocalAsyncCall() и AsyncCall()
Пож-ста!
А кто такой Исп. AsyncCall?
М.б. на сайте, скажем, производителя, и почитать?
--
Regards, LVT.
← →
Leonid Troyanovsky © (2011-03-01 19:05) [6]
> Dennis I. Komarov © (01.03.11 15:28) [3]
> АП, это дядя Толя. Вот придет и будет сердится...
Придет усталый в хижину, а тут безобразия.
Не гут.
--
Regards, LVT.
← →
Противный (2011-03-01 20:17) [7]>> Leonid Troyanovsky © (01.03.11 19:05) [6] Придет усталый в хижину, а тут безобразия. Не гут.
"Хижина дяди Пэ" (С)
← →
Sashka (2011-03-01 22:23) [8]Искренне не понимаю такую позицию: "лишь бы постебаться...."
Вопрос задан в конференции "Начинающим" - отсылать на сайт производителя - безусловно я прочитал документацию идущую с исходником AsynсCalls.pas
но не смог сам разобраться
>> То Leonid Troyanovsky Спасибо за конструктивный ответ.
И остальным коллегам, кто "не смог пройти мимо Хижины"
← →
Sashka (2011-03-01 22:23) [9]Удалено модератором
← →
Юрий Зотов © (2011-03-01 22:35) [10]
> Sashka (01.03.11 22:23) [9]
Но может быть, стоило хотя бы привести ссылку?
Хотя бы из вежливости, чтобы не заставлять людей искать.
← →
Leonid Troyanovsky © (2011-03-01 22:52) [11]
> Sashka (01.03.11 22:23) [9]
> производителя - безусловно я прочитал документацию идущую
> с исходником AsynсCalls.pas
> но не смог сам разобраться
Ну, а что осталось необъясненным производителем?
--
Regards, LVT.
← →
Sashka (2011-03-01 23:01) [12]Прошу прощения мне казалось что многие используют AsyncCalls.pas
Соответственно имел ввиду вот это:
http://andy.jgknet.de/blog/bugfix-units/asynccalls-29-asynchronous-function-calls/
Цитата:
"LocalAsyncCall function
LocalAsyncCall() executes the given local function/procedure in a separate thread. "
Далее
"AsyncCall functions
The AsyncCall() functions start a specified asynchronous function.
"
и в чем разница одного от другого не пойму.
← →
Юрий Зотов © (2011-03-01 23:27) [13]> Sashka (01.03.11 23:01) [12]
Если я правильно понял, то LocalAsyncCall предназначена для выполнения вложенных функций.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.06.05;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.003 c