spawn<TArg, TResult> static method
Future<KIsolateContinuous<TArg, TResult> >
spawn<TArg, TResult>(
- Future<
void> initialize(- void registerHandler(
- void (
- TArg arg,
- void respond(
- TResult
- void (
- void registerHandler(
- RootIsolateToken? rootIsolateToken,
- int maxQueueSize = kDefaultMaxQueueSize,
- int agingThreshold = 10,
Spawns and initialises a persistent isolate worker.
initialize runs inside the new isolate. It must call
registerHandler exactly once before returning. Any Flutter
platform-channel access inside initialize requires rootIsolateToken.
Note: avoid calling rootBundle or platform channels in initialize
before rootIsolateToken has been applied — the entry point applies the
token as the very first step before invoking initialize.
Implementation
static Future<KIsolateContinuous<TArg, TResult>> spawn<TArg, TResult>(
Future<void> Function(void Function(void Function(TArg arg, void Function(TResult) respond)) registerHandler)
initialize, {
RootIsolateToken? rootIsolateToken,
int maxQueueSize = kDefaultMaxQueueSize,
int agingThreshold = 10,
}) async {
final inst = KIsolateContinuous<TArg, TResult>._(maxQueueSize: maxQueueSize, agingThreshold: agingThreshold);
await inst._init(initialize, rootIsolateToken: rootIsolateToken);
return inst;
}