[英]Dart isolate call or send
我有几个关于隔离如何工作的问题:
1) call
和send
和我什么时候应该使用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.