feat: win代码同步
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
import 'dart:async';
|
||||
import 'dart:isolate';
|
||||
|
||||
/// Simple worker that executes functions in a separate isolate.
|
||||
/// Replacement for combine package's CombineWorker.
|
||||
class IsolateWorker {
|
||||
/// Execute a function in a separate isolate and return the result.
|
||||
///
|
||||
/// Note: The function must be a top-level function or a static method,
|
||||
/// and it cannot capture non-sendable objects from the surrounding scope.
|
||||
Future<T> execute<T>(T Function() computation, {bool allowSyncFallback = false}) async {
|
||||
try {
|
||||
return await Isolate.run(computation);
|
||||
} catch (e) {
|
||||
if (!allowSyncFallback) {
|
||||
rethrow;
|
||||
}
|
||||
return computation();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user