Главная страница
    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.47 MB
Время: 0.003 c
6-1237972450
антон1243232
2009-03-25 12:14
2011.06.05
Проблема со склейкой пакетов


2-1298399817
aka
2011-02-22 21:36
2011.06.05
TreeView


15-1298064597
Юрий
2011-02-19 00:29
2011.06.05
С днем рождения ! 19 февраля 2011 суббота


2-1298278775
fidel
2011-02-21 11:59
2011.06.05
Загрузка


2-1298177204
Gu
2011-02-20 07:46
2011.06.05
Версия SQL клиента и сервера - узнать





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