Dart-生成多个隔离时在控制台中获取“格式错误的消息”

时间:2018-11-19 22:49:29

标签: mobile dart flutter dart-isolates

我是dart的新手,我正尝试使用隔离程序运行多种算法,以更有效地多次运行它们,但是,当使用Isolate.spawn调用多个函数时,我开始在控制台中收到“格式错误的消息” ,它仍然有效,但是我想知道为什么会收到此消息,也欢迎在改进代码方面提供任何帮助,因为我仍在学习使用隔离的复杂性

 stressTest()
{
ReceivePort rpDouble = new ReceivePort();
ReceivePort rpString = new ReceivePort();
ReceivePort rpInteger = new ReceivePort();
int counter = 0;
int tempoTotal = 0;

  rpDouble.listen((data) {
    counter++;
    tempoTotal += data; //data is a stopwatch.toMilliseconds
    setState(() {  //updating the "progress" and the time it took to run the algorithm in the ui
      test = counter.toString() + '%';
      _counter = tempoTotal.toString();
    });
  });
rpInteger.listen((data){
  counter++;
  tempoTotal += data;
  setState(() {
    test = counter.toString() + '%';
    _counter = tempoTotal.toString();
  });
});
rpString.listen((data){
  counter++;
  tempoTotal += data;
  setState(() {
    test = counter.toString() + '%';
    _counter = tempoTotal.toString();
  });
});

for(int i = 0; i < 5; i++) {
  Isolate.spawn(DoubleTest, rpDouble.sendPort);
  Isolate.spawn(StringStress, rpString.sendPort);
  Isolate.spawn(integerTest, rpInteger.sendPort);
}
}
}

DoubleTest,StringStress和IntegerTest是将秒表.toMilliseconds整数返回到sendPort的函数。

在此先感谢您的帮助

3 个答案:

答案 0 :(得分:0)

由于您的代码运行良好,因此您不必担心该错误。但是,请尝试重新格式化您的代码,以避免出现此错误消息。

答案 1 :(得分:0)

当您想查看Performance App时会发生这种情况。但是,在“重新加载”应用程序期间,重新同步数据会导致性能不稳定,无法获得地址或中断进度读取器,导致出现该消息。这不会影响应用程序或您的应用程序错误。如果您需要阅读“内存使用情况”或“帧渲染时间”,则只需重新启动IDE并重新启动即可。

答案 2 :(得分:-1)

我的程序中有类似的问题。只需在“热重启”之前保存文件即可。