Метод send
Метод send класса SendPort отправляет
сообщение в изолят, связанный с данным портом.
В первый параметр мы передаем сообщение, которое
хотим отправить. Сообщение может быть любого типа:
число, строка, список, карта, а также другие
объекты, которые можно передать между изолятами.
Сообщение будет доставлено в изолят, который
владеет соответствующим ReceivePort.
Синтаксис
sendPort.send(message)
Пример
Давайте отправим простое строковое сообщение
в изолят через SendPort и получим его
в главном изоляте:
import 'dart:isolate';
void main() async
{
ReceivePort receivePort = ReceivePort();
await Isolate.spawn(isolateFunction, receivePort.sendPort);
receivePort.listen((message) {
print(message);
receivePort.close();
});
}
void isolateFunction(SendPort sendPort)
{
sendPort.send('abcde');
}
Результат выполнения кода:
"abcde"
Пример
Давайте отправим список чисел из изолята в главный изолят:
import 'dart:isolate';
void main() async
{
ReceivePort receivePort = ReceivePort();
await Isolate.spawn(isolateFunction, receivePort.sendPort);
receivePort.listen((message) {
print(message);
receivePort.close();
});
}
void isolateFunction(SendPort sendPort)
{
sendPort.send([1, 2, 3, 4, 5]);
}
Результат выполнения кода:
[1, 2, 3, 4, 5]
Смотрите также
-
класс
SendPort,
который представляет порт для отправки сообщений -
класс
ReceivePort,
который принимает сообщения от изолятов -
метод
spawn,
который создает новый изолят -
класс
Isolate,
который представляет изолят