同步线程导致死锁?

时间:2015-05-14 11:36:59

标签: android multithreading delphi delphi-xe7

同样的项目在Windows / iOS平台上运行完美,但在运行不确定的持续时间后导致Android(两个不同的Android设备)死锁。

procedure TTestThread.FSynProc;
begin
  Inc(Form1.FExecuted); //Variable of TForm
  Form1.Text1.Text:= IntToStr(Form1.FExecuted);
end;

procedure TTestThread.Execute;
var
begin
  while not Self.Terminated do
  begin
    Self.Synchronize(FSynProc);
    sleep(10);
  end;
end;

constructor TTestThread.Create;
begin
  inherited Create(True);
  Self.FreeOnTerminate:= True;
end;

destructor TTestThread.Destroy;
begin
  inherited;
end;

启动TTestThread的代码

procedure TForm1.StartTTProc;
begin
  ftt:= TTestThread.Create; // Variable of TForm
  ftt.Start;
end;

在StartTTProc之后,数字显示在' Text1'继续增加。 在Android设备上运行不确定的持续时间后,应用程序冻结了。 有什么建议吗?

0 个答案:

没有答案