runWithThreshold<T, R> static method
Runs a function in an isolate if the data size exceeds the threshold.
The function parameter is the function to run in the isolate.
The message parameter is the data to pass to the function.
The dataSize parameter is the size of the data in bytes.
The asyncThreshold parameter determines the data size (in bytes) above which
the operation will be performed in a separate isolate.
Returns the result of the function.
Implementation
static Future<R> runWithThreshold<T, R>({
required R Function(T) function,
required T message,
required int dataSize,
int asyncThreshold = defaultAsyncThreshold,
}) async {
// If the data size is below the threshold, run synchronously
if (dataSize < asyncThreshold) {
return function(message);
}
// Otherwise, run in a separate isolate
_log.fine('Running operation in isolate for data size: $dataSize bytes');
return Isolate.run(() => function(message));
}