如何将参数(除了 SendPort)传递给 Dart 中生成的隔离

2023-12-23

In 本文 https://www.raywenderlich.com/10971345-flutter-interview-questions-and-answers,他们产生了这样的分离株:

import 'dart:isolate';

void main() async {
  final receivePort = ReceivePort();
  final isolate = await Isolate.spawn(
    downloadAndCompressTheInternet,
    receivePort.sendPort,
  );
  receivePort.listen((message) {
    print(message);
    receivePort.close();
    isolate.kill();
  });
}

void downloadAndCompressTheInternet(SendPort sendPort) {
  sendPort.send(42);
}

但我只能传入接收端口。我如何传递其他参数?

我找到了答案,所以我将其发布在下面。


由于只能传入单个参数,因此可以将参数设置为列表或映射。其中一个元素是 SendPort,其他项是您想要提供给函数的参数:

Future<void> main() async {
  final receivePort = ReceivePort();
  
  final isolate = await Isolate.spawn(
    downloadAndCompressTheInternet,
    [receivePort.sendPort, 3],
  );
  
  receivePort.listen((message) {
    print(message);
    receivePort.close();
    isolate.kill();
  });
  
}

void downloadAndCompressTheInternet(List<Object> arguments) {
  SendPort sendPort = arguments[0];
  int number = arguments[1];
  sendPort.send(42 + number);
}

您已经失去了这样的类型安全性,但您可以根据需要检查方法中的类型。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将参数(除了 SendPort)传递给 Dart 中生成的隔离 的相关文章

  • Flutter 容器的 onTap 方法

    一直在开发一个 flutter 应用程序并根据一些 Firebase 数据动态构建一些容器 我想知道是否有办法获得容器的 onTap 方法 或任何不是按钮的小部件 这是一个代码示例 child new Container INSERT ON
  • Flutter 应用程序错误 - 类型“Timestamp”不是类型“DateTime”的子类型

    我正在获取数据云 firestore 并尝试使用以下代码在我的应用程序中显示 new Text timeago format document data tripDoc docCreatedOn 我在用着timeagodart 包来格式化它
  • 如何在 Flutter Web 应用程序中保存和下载文本文件

    我是 Flutter 新手 正在使用 Flutter Web 应用程序 我的要求是创建和下载文本文件 像下面这样 void getData List
  • 如何检测flutter网站是否在浏览器后台运行?

    WidgetsBindingObserver 不适用于我的 flutter web 项目 是否有类似的东西可以检测用户何时关闭浏览器 例如使用 widgetbinding 关闭本机设备应用程序 我想在每次重建浏览器后重建整个网站 无论网站之
  • 如何从cloud firestore获取数据,其中user.uid等于flutter中的文档id?

    我有一个显示用户信息的个人资料屏幕 用户经过身份验证后 我将数据存储在云 Firestore 中 文档 ID 等于用户 ID 现在 我想从 cloud firestore 检索数据 当前 userId 等于文档 id 现在我有这个 clas
  • 如何将资产图像转换为文件?

    有没有办法将资产图像用作文件 我需要一个文件 以便可以使用它通过 http 在互联网上进行测试 我尝试过 Stackoverflow com 的一些答案 如何使用 image file 加载图像 https stackoverflow co
  • 以阿拉伯语格式显示数字 Dart

    如何在flutter应用程序中显示阿拉伯格式的数字 我需要将它们显示为 而不是将数字显示为 1 2 3 我尝试使用 NumberFormat 类 但它不起作用 颤抖医生 Doctor summary to see all details r
  • Flutter - 迭代对象键和值

    我有和反对 我想知道是否有一种简单的方法来迭代它的键和值 class Post String id String title String article Post this id this title this article 那没有 你
  • 如何检查 Flutter 应用程序是否正在调试中运行?

    我正在寻找一种在应用程序处于调试模式时在 Flutter 中执行代码的方法 在 Flutter 中这可能吗 我似乎无法在文档中的任何地方找到它 像这样的东西 If app inDebugMode print Print only in de
  • 如何使聚合物元素可拖动

    我正在尝试启用HTML5 拖放到自定义聚合物元素上但它不起作用 如果没有聚合物 可以只添加draggable属性 这是我在 Dart 中的代码 我的组件 html
  • 如何在颤动中动态禁用工具提示?

    我可以静态禁用工具提示 但我想在单击平按钮时动态禁用工具提示 但是无法动态禁用 我不知道该怎么做 这是我的代码 import package flutter material dart void main runApp MaterialAp
  • Flutter:步骤小部件无法容纳展开的

    Widget stepPickerData BuildContext context SwapRequest snapData final makeSwapRequestBloc MakeSwapRequestProvider of ctx
  • 如何在 Flutter 中将国际化对象传递给子控件

    刚刚开始使用 Flutter dart 过渡到 PHP 并努力弄清楚如何将类传递到小部件中 我正在努力使用 flutter 创建我的第一个 Android 和 iOS 应用程序 我正在处理国际化 并且使用我拥有的国际化类在我的初始构建页面上
  • TextFormString 验证器的多行字符串

    In my TextFormString对于密码字段我有validator返回一个字符串 问题是这样的String太长了 不适合屏幕 我想让它成为多行 但我找不到如何做到这一点 我尝试设置宽度Container this TextFormS
  • Dart如何向字符串数字添加逗号

    我正在尝试适应这一点 在数字字符串中插入逗号 https stackoverflow com questions 721304 insert commas into number string在 Dart 工作 但没有运气 其中任何一个都不
  • 导航到新屏幕时状态栏颜色

    我在我的中使用以下build 第一个屏幕更改状态栏颜色的方法 效果很好 1st screen s build method SystemChrome setSystemUIOverlayStyle SystemUiOverlayStyle
  • 未为“AudioCache”类型定义“play”方法

    问题 未为 AudioCache 类型定义 play 方法 导入 包 flutter material dart 导入 包 audioplayers src audio cache dart void main runApp Xylopho
  • 对于哪些 flutter 小部件我们需要使用 const?

    我了解的好处const并且小部件不会在状态更改时重建 但当您看到下面的代码时 仍然很明显它们是常量 我希望 flutter 自动处理它 或者 flutter 已经在处理它而我却没有意识到 This makes sense to me but
  • Dart 是单线程的,但为什么它使用 Future 对象并执行异步操作

    在文档中 Dart 是单线程的 但为了一次执行两个操作 我们使用与线程相同工作的 future 对象 使用Future对象 futures 来执行异步操作 如果 Dart 是单线程的 那么为什么它允许执行异步操作 Note 异步操作是并行操
  • 颤振文本小部件仅显示最后一个条目

    我正在尝试在 flutter 中创建日历 目前我正在实施这些活动 为了测试这一点 我创建了一个方法来检查当前日期 即创建行的时间 是否有事件 如果是这种情况 则会在表示内容的容器中打印 x 整个事情只是第一次测试 看它是否在原则上有效 当我

随机推荐