0

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

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);  
      });   
}

4

1 回答 1

0

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

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();
    }
  });
}
于 2019-05-03T14:26:27.940 回答