XE5的安卓用了BeginThread会闪退是什么情况?
function ok(parameter:Pointer):integer;
begin
while True do
begin
Application.ProcessMessages;
if stop=1 then
break;
end;
//ShowMessage('stoped');
end;
procedure TForm1.Button11Click(Sender: TObject);
var
id:NativeUInt;
begin
stop:=0;
id:=1000;
BeginThread(nil,ok,nil,id);
//BeginThread()
end;
不知道哪里错了。
[解决办法]
不知道你在非主线程调用Application.ProccessMessages是什么想法,你这么做会导致部分UI操作移动到你开的线程里,UI操作不是线程安全的,你这么写会导致崩溃,而且尽量应该使用TThread类来对线程进行操作。