Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2011, 23:00   #1
kakawkin
Форумчанин
 
Регистрация: 21.09.2009
Сообщений: 431
По умолчанию Многопоточная программа

Вот код:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var NewThread: TNewThread;
begin
 NewThread:=TNewThread.Create(true);
 NewThread.FreeOnTerminate:=true;
 NewThread.Priority:=tpLower;
 NewThread.Resume;
end;

procedure TNewThread.Execute;
var i:integer;
begin
 for i:=1 to 10000 do form1.memo1.lines.add(inttostr(i));
end;
Собственно в одном потоке все хорошо. Пытался делать в двух потоках изменением кода у кнопки:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var NewThread,NewThread1: TNewThread;
begin
 NewThread:=TNewThread.Create(true);
 NewThread.FreeOnTerminate:=true;
 NewThread.Priority:=tpLower;
 NewThread.Resume;
 NewThread1:=TNewThread.Create(true);
 NewThread1.FreeOnTerminate:=true;
 NewThread1.Priority:=tpLower;
 NewThread1.Resume;
end;
но он мне по 2 раза выводит, т.е. я предполагал что будет выводить быстрее а он:
Код:
1
1
2
2
3
3
4
4
и т.д.

Не подскажите как сделать так чтобы было несколько потоков на 1 код ?
kakawkin вне форума Ответить с цитированием
Старый 04.06.2011, 23:04   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Ключевое слово "Синхронизация". В DRKB есть целый раздел по синхронизации процессов. Там описано много чего, что тебе поможет решить проблему с потоками.
Человек_Борща вне форума Ответить с цитированием
Старый 04.06.2011, 23:34   #3
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

Вообще-то, ключевое слово "2 переменных одного типа". Вас не смущает, что вы создали 2 полностью идентичных потока, их запустили, а потом удевляетесь почему у вас 2 раза выводит одно и тоже?
W0LF вне форума Ответить с цитированием
Старый 05.06.2011, 00:05   #4
kakawkin
Форумчанин
 
Регистрация: 21.09.2009
Сообщений: 431
По умолчанию

нет не смущает т.к. кроме этого примера ничего другого не видел.
Спасибо за информацию!
В DRKB всего одна статья и то левая какаято.

Немогли бы сами дать пример хороший какойнить ?

Последний раз редактировалось kakawkin; 05.06.2011 в 00:18.
kakawkin вне форума Ответить с цитированием
Старый 05.06.2011, 00:33   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Держи пример, их там много.
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ Многопоточная обработка матрицы порядка 1000х1000 Borisov Общие вопросы C/C++ 11 10.01.2011 22:32
Программа открыается если есть другая программа. bookkc Паскаль, Turbo Pascal, PascalABC.NET 12 14.10.2009 20:09
[PASCAL]Программа создания файла, программа обработки файла Виколяшка Фриланс 7 23.09.2009 17:38
Программа создания файла, программа обработки файла [PASCAL] Виколяшка Помощь студентам 1 22.09.2009 22:56