Заранее извиняюсь, но этот вопрос упоминался в другой моей теме в разделе сетей. Просто там этот вопрос не в тему поэтому решил повтрить его тут.
у меня проблема такого рода: при создании потока он вешает приложение. загрузка цп 100%. в чем может быть проблема. читал много инфы по потокам но ничего не нашел.
вот пример кода
Код:
unit Unit3;
interface
uses
Classes, sysutils;
type
mythread = class(TThread)
name:string;
i:longint;
procedure showmsg1;//(i:longint);
procedure showmsg2;//(i:longint);
private
{ Private declarations }
protected
procedure Execute; override;
end;
implementation
uses unit1;
{ Important: Methods and properties of objects in visual components can only be
used in a method called using Synchronize, for example,
Synchronize(UpdateCaption);
and UpdateCaption could look like,
procedure mythread.UpdateCaption;
begin
Form1.Caption := 'Updated in a thread';
end; }
{ mythread }
procedure mythread.showmsg1;//(i:longint);
begin
form1.Memo1.Lines.Append(inttostr(i));
end;
procedure mythread.showmsg2;//(i:longint);
begin
form1.Memo2.Lines.Append(inttostr(i));
end;
procedure mythread.Execute;
{ Place thread code here }
begin
while not terminated do begin
inc (i);
if name='1' then Synchronize(showmsg1);
if name='2' then Synchronize(showmsg2);
if i>10000 then terminate;
end;
end;
end.
а также часть кода из модуля Unit1
Код:
t1:=mythread.Create(false);
t1.name:='1';
t2:=mythread.Create(false);
t2.name:='2';
//Application.ProcessMessages;
Admin: Пользуемся тегами!