Главная страница
    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
15-1297849341
И. Павел
2011-02-16 12:42
2011.06.05
AtiveX отдыхает, если IE на такое способен :)


15-1297848575
DelphiN!
2011-02-16 12:29
2011.06.05
Ошибка в bat файле


2-1294930060
Scott Storch
2011-01-13 17:47
2011.06.05
загрузка dll из ресурса


2-1298489959
Gu
2011-02-23 22:39
2011.06.05
Проверить наличие включенной Dep в виндах


2-1298365017
oleg_teacher
2011-02-22 11:56
2011.06.05
Таблицы, word, delphi





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