Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.005 c
2-1298644603
grigor
2011-02-25 17:36
2011.06.05
Проблема с потоками


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


2-1298528519
Trekker
2011-02-24 09:21
2011.06.05
Открытие страницы IE в полноэкранном режиме в текущем окне


15-1298022283
павел
2011-02-18 12:44
2011.06.05
ограничение использования FloatToStr и ему подобных


15-1298237396
Юрий
2011-02-21 00:29
2011.06.05
С днем рождения ! 21 февраля 2011 понедельник





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