【问题标题】:Dart Isolate SendPort and ReceivePort sending 100times vice versaDart 隔离 SendPort 和 ReceivePort 发送 100 次,反之亦然
【发布时间】:2019-05-03 08:59:16
【问题描述】:

我的main 可以工作,但在我的foo 中,我想将数据发送到 main。这是我的代码,我想在 foomain 之间传递数据 100 次。我怎样才能做到这一点?

import 'dart:isolate';  
import 'dart:async';
void foo(SendPort sendPort) async {
  ReceivePort receivePort = new ReceivePort();
  sendPort.send(receivePort.sendPort);
      receivePort.listen((dataSend){
      print('foo  received : ${dataSend}');
      print('');
    });
}
void main() async {
      int temp = 0;
      ReceivePort receivePort = new ReceivePort(); 
      Isolate.spawn(foo,receivePort.sendPort);  
      receivePort.listen((dataSend) {   
      print('I received : ${dataSend}');      
      dataSend.send(temp+1);  
      });   
}

【问题讨论】:

    标签: dart dart-isolates


    【解决方案1】:

    我真的很困惑你想要实现什么,但它是这样的吗?

    import 'dart:isolate';
    import 'dart:async';
    
    void foo(SendPort sendPort) async {
      ReceivePort receivePort = new ReceivePort();
      sendPort.send(receivePort.sendPort);
      receivePort.listen((dataSend) {
        print('foo  received : ${dataSend}');
        sendPort.send(receivePort.sendPort);
      });
    }
    
    void main() async {
      int temp = 0;
      ReceivePort receivePort = new ReceivePort();
      Isolate.spawn(foo, receivePort.sendPort);
      receivePort.listen((dataSend) {
        print('I received : ${dataSend}');
        if (++temp < 100) {
          dataSend.send(temp);
        } else {
          receivePort.close();
        }
      });
    }
    

    【讨论】:

    • yes 差不多,但就像 Isolate.spawn(foo, receivePort.sendPort);它会将 sendPort 发送到 foo() 对吗?但我还想发送 temp = 0 或 0 值,然后当 foo() 接收数据时, foo() 可以获得 0 值,并且在 foo() 内部将添加 + 2 或类似 0 + 2 和答案这会将它发送到 main() 这就是为什么我有 receiveport() 然后主接收 2 正确然后主将 +1 或像 1+ 2 然后再次发送到 foo() 反之亦然 100 次.. 我希望你明白我的解释..
    • 如果您需要传输多个数据,您可以发送一个列表作为输入。
    猜你喜欢
    • 1970-01-01
    • 2019-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多