Форум: "Начинающим";
Текущий архив: 2006.05.07;
Скачать: [xml.tar.bz2];
ВнизРабота с несколькими потоками Найти похожие ветки
← →
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 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.05.07;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.011 c