compute top-level property

Future<R> Function<Q, R>(ComputeCallback<Q, R> callback, Q message, {String debugLabel}) 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.


final _ComputeImpl compute = _isolates.compute