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

Вниз

Работа с 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.008 c
15-1297891798
Юрий
2011-02-17 00:29
2011.06.05
С днем рождения ! 17 февраля 2011 четверг


2-1298464739
Артём
2011-02-23 15:38
2011.06.05
Ограничить поле вывода


2-1298569806
RMan
2011-02-24 20:50
2011.06.05
Прозрачное неактивное окно


2-1298888893
bumb
2011-02-28 13:28
2011.06.05
запрос


6-1237972450
антон1243232
2009-03-25 12:14
2011.06.05
Проблема со склейкой пакетов