compute top-level constant Null safety

ComputeImpl const compute

Spawn an isolate, run callback on that isolate, passing it message, and (eventually) return the value returned by callback.

This is useful for operations that take longer than a few milliseconds, and which would therefore risk skipping frames. For tasks that will only take a few milliseconds, consider SchedulerBinding.scheduleTask instead.

Q is the type of the message that kicks off the computation.

R is the type of the value returned.

The callback argument must be a top-level function, not a closure or an instance or static method of a class.

There are limitations on the values that can be sent and received to and from isolates. These limitations constrain the values of Q and R that are possible. See the discussion at SendPort.send.

The debugLabel argument can be specified to provide a name to add to the Timeline. This is useful when profiling an application.


const ComputeImpl compute = _isolates.compute;