РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
702 of 723 menu

Свойство sendPort

Свойство sendPort класса ReceivePort возвращает объект типа SendPort, который связан с данным портом получения. Каждый ReceivePort имеет ровно один соответствующий ему SendPort. Через этот порт отправки можно передавать сообщения в изолят, которому принадлежит порт получения. Свойство доступно только для чтения и не принимает параметров.

Синтаксис

receivePort.sendPort

Пример

Давайте создадим порт получения и получим его порт отправки, а затем выведем информацию о нём:

import 'dart:isolate'; void main() { ReceivePort receivePort = ReceivePort(); SendPort sendPort = receivePort.sendPort; print(sendPort); receivePort.close(); }

Результат выполнения кода:

"SendPort"

Пример

Давайте создадим изолят и передадим ему порт отправки, полученный через свойство sendPort, чтобы изолят мог отправить сообщение обратно:

import 'dart:isolate'; void isolateFunction(SendPort sendPort) { sendPort.send('message from isolate'); } void main() async { ReceivePort receivePort = ReceivePort(); await Isolate.spawn( isolateFunction, receivePort.sendPort ); receivePort.listen((message) { print(message); receivePort.close(); }); }

Результат выполнения кода:

"message from isolate"

Пример

Давайте отправим несколько сообщений из главного изолята в дочерний, используя порт отправки, полученный через свойство sendPort:

import 'dart:isolate'; void isolateFunction(SendPort sendPort) { ReceivePort internalPort = ReceivePort(); sendPort.send(internalPort.sendPort); internalPort.listen((message) { print('Received: $message'); }); } void main() async { ReceivePort receivePort = ReceivePort(); await Isolate.spawn( isolateFunction, receivePort.sendPort ); SendPort childSendPort = await receivePort.first; childSendPort.send('12345'); childSendPort.send('abcde'); }

Результат выполнения кода:

"Received: 12345" "Received: abcde"

Смотрите также

  • класс ReceivePort,
    который создаёт порт для получения сообщений
  • класс SendPort,
    который представляет порт для отправки сообщений
  • метод send,
    который отправляет сообщение через порт
  • метод spawn,
    который создаёт новый изолят
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить