What is the equivalent of Device.BeginOnMainThread() in Flutter?

Dart has a single-threaded execution model,
with support for Isolates (a way to run Dart codes on another thread),
an event loop, and asynchronous programming.
Unless you spawn an Isolate,
your Dart code runs in the main UI thread
and is driven by an event loop.

Dart’s single-threaded model doesn’t mean you need to run everything
as a blocking operation that causes the UI to freeze.
Much like Xamarin.Forms, you need to keep the UI thread free.
You would use async/await to perform tasks,
where you must wait for the response.

In Flutter, use the asynchronous facilities that the Dart language provides,
also named async/await, to perform asynchronous work.
This is very similar to C# and should be very easy to use
for any Xamarin.Forms developer.