Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 27.09.2015
Сообщений: 68
1

Работа в несколько потоков

20.12.2015, 17:10. Показов 581. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день.
Мне нужно, чтобы каждый поток обрабатывал свою строку.
Пробовал реализовать так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
procedure TPotok.Execute;
 
begin
   Synchronize(reg);
end;
 
 
procedure TPotok.reg;
begin
  Form1.Memo1.Lines.Add('Беру строку- '+IntToStr(i));
end;
 
procedure TForm1.Button1Click(Sender: TObject);
 
 
begin
    for i:=0 to Form1.Memo1.Lines.Count-1 do
  begin
 
      Potok:=TPotok.Create(true); //т.к запускаем через Resume
 Potok.Priority:=tpLower;
 Potok.FreeOnTerminate:=True;
 Potok.Resume;
 
  end;
 
 
end;
На выходе получается следующие:

А нужно, чтобы каждый брал свою строку.
Как это сделать правильно ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.12.2015, 17:10
Ответы с готовыми решениями:

Работа с потоками. Несколько потоков обращаются в один
Есть один поток, он заполняет массив значениями. И есть неограниченное количество других потоков,...

Несколько потоков
Опять я и опять вопрос про потоки. :) Я создал поток, в нем у меня выполняется определенный код....

Разбить функцию на несколько потоков
Здравствуйте, помогите пожалуйста разобраться с одним вопросом: Имеется функция внутри которой 3...

Как запустить несколько потоков с общим List?
Тема затертая до дыр, но которую я не могу понять вообще, тупо не поддается моему осознанию, задача...

5
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
20.12.2015, 17:19 2
Potok:=TPotok.Create(true, вот здесь и следовало передать ему строку)
0
0 / 0 / 0
Регистрация: 27.09.2015
Сообщений: 68
20.12.2015, 18:31  [ТС] 3
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
procedure TPotok.Execute;
 
begin
   Synchronize(reg);
end;
 
 
procedure TPotok.reg;
begin
  Form1.Memo2.Lines.Add('Беру строку- '+IntToStr(i));
end;
 
procedure TForm1.Button1Click(Sender: TObject);
 
 
begin
    for i:=0 to Form1.Memo1.Lines.Count-1 do
  begin
        setlength(Potok, i+1);
      Potok[i]:=TPotok.Create(true); //т.к запускаем через Resume
 Potok[i].Priority:=tpLower;
 Potok[i].FreeOnTerminate:=True;
 Potok[i].Resume;
 
  end;
 
 
end;
Пробовал ещё вот так, но результат остался прежний.
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
20.12.2015, 18:38 4
В #2 я кому писал, Пушкину ?
0
0 / 0 / 0
Регистрация: 27.09.2015
Сообщений: 68
20.12.2015, 19:12  [ТС] 5
Цитата Сообщение от mss Посмотреть сообщение
В #2 я кому писал, Пушкину ?
Возникает ошибка - [dcc32 Error] Unit1.pas(70): E2034 Too many actual parameters
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
20.12.2015, 19:14 6
Так надо же этот параметр добавить в описание и реализацию конструктора своего поточного класса !
Сам-то он с луны не свалится туда)
0
20.12.2015, 19:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.12.2015, 19:14
Помогаю со студенческими работами здесь

Ассинхронная работа с динамическим массивом 2-х потоков. Как?
Доброго. Ситуация такова, что добавление элементов в массив и удаление из массива ведется из...

Работа в потоке. Одновременно несколько количество
Начал делать все через поток, но не могу как сделать, так что бы в потоке работало одновременно n...

Работа с треем. Появляется несколько иконок вместо одной
В трее создается несколько иконок при сворачивании, хотя должна создаваться одна. Всего 2...

Как расписать слово на несколько едитов? Работа с PopupMenu
1. Есть слово, допустим "роса" , и есть 4 едита, как записать слово, по одной букве в каждый едит? ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru