Вниз
Скачать: CL | DM;

Работа с несколькими потоками   Найти похожие ветки 

← →
Std ©   (2006-04-18 16:15) [0]

По нажатию кнопки на форме запускается несколького потоков которые выполняют определенные действия. как узнать когда все потоки закончили работать? нада что бы нажал я на кнопку потоки начали выполнять свои действия, а как выполнили то выскочило окошко с надписью типа: "Потоки зделали свое дело. Потоки могут быть свободны"


← →
MBo ©   (2006-04-18 16:20) [1]

создать обработчик события при завершении потока OnTerminate


← →
ooops   (2006-04-18 16:32) [2]

var
Swith : Integer;

procedure Form1.ThreadCreate;
begin
Swith := 0;
создание потока 1
 Inc(Swith);
создание потока 2
 Inc(Swith);
end;

procedure TForm1.EndThread;
begin
if Swith = 0 then сообщение
else Dec(Swith);
end;

procedure Thread.Execute;
begin
Synhronize(Form1.EndThread);
end;


← →
Мефисто   (2006-04-18 16:34) [3]

ooops    (18.04.06 16:32) [2]

Что это было? Уверены?


← →
Сергей М. ©   (2006-04-18 16:51) [4]


> ooops   (18.04.06 16:32) [2]


На то существует событие TThread.OnTerminate


← →
Std ©   (2006-04-18 17:38) [5]

за OnTerminate спасибо, но теперь возникла другая необходимость.
у меня существует один StringList он делится на 5 StringList sl1,sl2,sl3,sl4,sl5
соответствеено создается 5 потоков которые обрабатывают эти списки. так вот вопрос: как мне пощитать процент выполения обработки строк всех 5 списков.
для каждого отдельного потока я делал вот так:

for i:=0 to sl.Count-1 do
 begin
   ........
   q:=((i+1)*100)div lt.Count;
 end;

и q передавал в главную форму, это и был процент выполенния для каждого потока.
а вот как зделать процент для всех потоков не соображу


← →
MBo ©   (2006-04-18 17:46) [6]

Это учебная задача?


← →
Std ©   (2006-04-19 13:07) [7]

ага, учебная


← →
MBo ©   (2006-04-19 13:13) [8]

ПроцентДляВсехПотоков = 100 * СуммаСделанногоВсемиПотоками / РазмерДанныхВсехПотоков


← →
Сергей М. ©   (2006-04-19 13:13) [9]


> как зделать процент для всех потоков


Вася и Петя поделили яблоко пополам.

Вася съел 50% своей доли, а Петя 30% своей.

Сколько процентов целого яблока съели Вася с Петей ?

Ответ очевиден - (50% + 30%) / 2 = 40%

Откуда взялась "двойка" - догадайся сам)


← →
Сергей М. ©   (2006-04-19 13:18) [10]


> Std ©   (19.04.06 13:07) [7]


Ну а вообще говоря городить огород с "делением" стринглиста на кучу стринглистов вряд ли есть повод.


← →
Std ©   (2006-04-19 16:41) [11]

Сергей М.
ну я придумал только такой способ как обрабатывать строки из стринг листа в пять потоков одновременно



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.032 c
3-1142418337
Данияр
2006-03-15 13:25
2006.05.07
Отмена удаления записи в OnBeforeDelete


2-1145273601
shick
2006-04-17 15:33
2006.05.07
dbgrid и 2 таблицы paradox


2-1145516327
Сергей И
2006-04-20 10:58
2006.05.07
Может кто подскажет как произвести обратный отсчет времени


15-1144809637
Skyle
2006-04-12 06:40
2006.05.07
EPL 2, принтеры этикеток


9-1128282128
3d[Power]__
2005-10-02 23:42
2006.05.07
OGG via directsound




   Наверх