在我的 Flutter 应用程序中,我们有应用程序的主隔离区以及由 Flutter
workmanager
插件 创建的另一个隔离区 - 因此我无法将 SendPort 实例共享给新隔离区。由于后台工作程序可以(几乎)随时运行,因此未定义主隔离和后台隔离的生成顺序。
在我们的主应用程序和后台工作程序中,我们执行非线程安全操作,例如刷新身份验证令牌,因此我们需要确保一次有一个隔离执行该工作。
是否有类似命名互斥体的东西,可以在隔离之间共享锁定机制,除了名称等常量(如字符串或类似的)之外,无需任何引用?
我已经尝试过使用
IsolateNameServer
,但在那里你只能创建单向通信,我也不知道这对我们有什么帮助。
您可以查看 https://pub.dev/packages/shared_map 来协调更新。