There is a unit that comes with Delphi XE5 Firemonkey called AnonThread.pas which easily allows you to use threads in your Android and IOS applications. There is also a demo project that comes with XE5 Firemonkey in the Samples/Delphi/RTL/CrossPlatform Utils/AnonymousThread/ directory which shows you how to use them. David Clegg from Embarcadero has a blog post explaining the example and how to use the anonymous threads. One reason to use threads in your IOS application is apparently any synchronous network calls that you do need to be in a thread otherwise you run the risk of your app crashing. Lastly be sure to Synchronize() any graphical control updates. I am including an example procedure below:
procedure RunAnonymousThread;
var
FThread: TAnonymousThread<Boolean>;
begin
FThread := TAnonymousThread<Boolean>.Create(
function: Boolean
begin
// Runs in separate thread
// run your thread safe code
// example:
//RESTClient.Execute;
// remember in a thread any graphical changes have to be wrapped in Synchronize()
//Synchronize(
//procedure
// begin
//Â Â Â Form1.Memo1.Lines.Add('Begin Execution');
//Â end);
Result := True;
end,
procedure(AResult: Boolean)
begin
// Runs in main thread
// process the result from above
end,
procedure(AException: Exception)
begin
// Runs in main thread
// do something if there is an exception
end,
False);
end;
You can read the full blog post about anonymous threads here.
Good stuff. I’ve been looking for the ego but tolo found on your site. You helped me a lot. I will continue to visit your blog.