Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.14;
Скачать: CL | DM;

Вниз

Потоки-потоки   Найти похожие ветки 

 
SpyBoy ©   (2005-07-20 23:15) [0]

type
TMyThread1 = class(TThread)
private
{ Private declarations }
protected
procedure DoWork;
procedure Execute; override;
end;

Не работает:выдает сообщение:
[Error] Unit1.pas(16): Unsatisfied forward or external declaration: "TMyThread1.DoWork"


 
Eraser ©   (2005-07-21 00:10) [1]

SpyBoy ©   (20.07.05 23:15)

Приведи реализацию procedure DoWork;


 
SpyBoy ©   (2005-07-21 12:11) [2]

type
  TMyThread1 = class(TThread)
  private
    { Private declarations }
  protected
    procedure DoWork;
    procedure Execute; override;
  end;

  TMyThread2 = class(TThread)
  private
    { Private declarations }
  protected
    procedure DoWork;
    procedure Execute; override;
  end;

var Form1: TForm1;
    T1   : TMyThread1;
    T2   : TMyThread2;

implementation

procedure TMyThread1.Execute;
begin
  {Пока процесс не прервали, выполняем DoWork}
  while not Terminated do
    Synchronize(DoWork);
end;

procedure TMyThread2.Execute;
begin
  {Пока процесс не прервали, выполняем DoWork}
  while not Terminated do
    Synchronize(DoWork);
end;

procedure TMyThread1.DoWork;
begin
  {Пытаемся победить второй процесс :-)}
  Form1.CheckBox1.Checked := True;
end;

procedure TMyThread2.DoWork;
begin
  {Пытаемся победить первый процесс :-)}
  Form1.CheckBox1.Checked := False;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  {Если кнопка называется Stop...}
  if Button1.Caption = "Stop" then begin
    {Прерываем оба процесса}
    T1.Terminate;
    T2.Terminate;
    {Изменяем название кнопки}
    Button1.Caption := "Start";
    {Выходим из процедуры}
    Exit;
  end;
  {Создаем и сразу запускаем два процесса}
  T1 := TMyThread1.Create(False);
  T2 := TMyThread2.Create(False);
  {Здесь можно поэкспериментировать с приоритетами:
   T1.Priority := tpLowest;
   T2.Priority := tpHighest;
   }
  {Переименовываем кнопку}
  Button1.Caption := "Stop";
end;


 
Digitman ©   (2005-07-21 12:19) [3]

Кариха - в топку.


 
Ботвин Дмитрий   (2005-07-21 12:46) [4]

Во первых нахрен нужен такой код?
А во вторых почему у тебя в разделе protected для двух разных потоков одна и та же процедура прописана?
Как это синхронизироваться должно то?


 
kblc ©   (2005-07-21 13:11) [5]

type
TMyThread1 = class(TThread)
 protected
   procedure DoWork;
   procedure Execute; override;
 end;

procederu TMyThread1.DoWork;
begin
 //
end;


 
Digitman ©   (2005-07-21 13:18) [6]


> kblc ©   (21.07.05 13:11) [5]


эт чего такое было ?)


 
alpet ©   (2005-07-21 13:20) [7]

>procederu
Компилятор должно быть не понимает, что ты хотел обозначить процедуру :))


 
alpet ©   (2005-07-21 13:23) [8]

Бесполезный совершенно код - у тебя установка флажка все равно производится в основном потоке,а от вспомогательных толку ноль. Если сообщение BM_SETCHECK контролу посылал из каждого - такой же был бы результат.


 
kblc ©   (2005-07-21 13:23) [9]

не успел извиниться... я 2 ночи не спал - а помочь хотелось... прогнал я чё-то...

он писал что у него ошибка такая, как будто этой ф-ии ваще нету ;)
забейте на сегодня на немучачего меня ;)


 
SpyBoy ©   (2005-07-27 16:25) [10]

alpet ©   (21.07.05 13:23) [8]
Тогда как её осуществить через вспомогательнЫЕ


 
Fay ©   (2005-07-27 18:14) [11]

Как эта ветка попала в WinAPI?!


 
alpet ©   (2005-07-27 18:25) [12]

SpyBoy ©   (27.07.05 16:25) [10]

И какой тебе в итоге будет толк от этого? Флажок наверняка будет меняться еще даже до перерисовки много раз - ты визуально не уследишь что к чему.

Есть в Delphi\Demos\Threads неплохой пример "соревнования" потоков в сортировке, советую с него начать изучение работы многопоточности.



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

Текущий архив: 2005.08.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.037 c
9-1114076133
Lostcoder
2005-04-21 13:35
2005.08.14
Размер VertexBuffer


1-1122171157
GuestPascal
2005-07-24 06:12
2005.08.14
последовательность визуализации окна


4-1117616006
Yandexman
2005-06-01 12:53
2005.08.14
Как изменить фоновую картинку на рабочем столе.


1-1122122718
xroot
2005-07-23 16:45
2005.08.14
дебаггер


14-1122062193
SoftX
2005-07-22 23:56
2005.08.14
Порно развивает телекоммуникации :)