Главная страница
    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.003 c
1-1256130157
sniknik
2009-10-21 17:02
2011.06.05
Узнать позицию (индекс) текущей строчки меню TMainMenu.TMenuItem


15-1296771492
xayam
2011-02-04 01:18
2011.06.05
Какая у Вас группа крови?


3-1259925264
BarON21
2009-12-04 14:14
2011.06.05
Выбор значений по дате+время


1-1256548761
GreyWolf
2009-10-26 12:19
2011.06.05
False virus detection


2-1298526442
AltCtrlDel
2011-02-24 08:47
2011.06.05
Многоязыковое приложение. ITE не нравится





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