Я новичок в dart, и я пытаюсь запустить несколько алгоритмов, используя изоляты, чтобы более эффективно запускать их несколько раз, однако, при вызове более одной функции с Isolate.spawn я начинаю получать 'Malformed message' в консоли , это все еще работает, но я хотел бы знать, почему я получаю это сообщение, также любая помощь в улучшении кода приветствуется, так как я все еще изучаю тонкости использования изолятов
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 - это функции, которые возвращают целое число stopwatch.toMilliseconds в sendPort.
Заранее спасибо, любая помощь приветствуется