繁体   English   中英

Dart 隔离调用或发送

[英]Dart isolate call or send

我有几个关于隔离如何工作的问题:

1) callsend和我什么时候应该使用call over send什么区别?

2)只是好奇,有没有办法像我们链接Future一样链接隔离?

3)

import 'dart:isolate';
echo() {
  port.receive((msg, reply) {
    print('I received: $msg');
  });
}

main() {
  var sendPort = spawnFunction(echo);
  sendPort.call('Hello from main');
}

它显示:我收到:来自主的你好

但是当我使用send ,它什么也不打印,为什么?

使用SendPort上的call()方法作为发送消息和接收回复的简单方法。 call()方法为回复返回一个Future 如果您不理会回复而只想发送消息,请使用send()

查看dart:isolate - Concurrency with Isolates了解更多信息。

对于 3) 它在上面的链接中有解释:

在独立 VM 中, main()函数在第一个隔离(也称为根隔离)中运行。 当根隔离终止时,它会终止整个 VM,而不管其他隔离是否仍在运行。 有关更多信息,请参阅“保持根隔离处于活动状态”一节

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM