BroadcastChannelUnsubscribe

From SunFlurry wiki
Revision as of 11:57, 1 April 2026 by Admin (talk | contribs) (1 revision imported)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
  BroadcastChannelUnsubscribe (Доставка сообщений)
Объект:Функции общего назначения
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Невозможно превратить в число, строку, ошибка сервера
Визуальность:Нет

Функция отменяет подписку на сообщения глобального канала сообщений, заданного по его имени или идентификатору (первый аргумент). См. описание BroadcastChannelSubscribe. Функция вызывается в потоке, для которого ранее была вызвана BroadcastChannelSubscribe. Отмена подписки происходит автоматически при завершении потока с подпиской. Если подписки не было, функция не выполняется никаких действий.

Синтаксис

BroadcastChannelUnsubscribe(<Имя или идентификатор канала (INT,STRING)>)

Аргументы

  • <Имя или идентификатор канала (INT,STRING)> - Имя канала для подписки (строка) или его идентификатор (число).

Примеры

//Пример простого отправителя и подписчика в одном фрагменте текста.

  Function Подписчик()
    аКодКанала:=BroadcastChannelSubscribe("Канал");
    аНум:=0;
    While 1 Do
      If not BroadcastChannelReceiveMessage(аКодКанала,100,аНум) Then
        Continue;
      EndIf;
      Message("Получено сообщение с ID "+аНум);
      If аНум=100 Then
        Break;
      EndIf;
    EndDo;
    BroadcastChannelUnsubscribe(аКодКанала);
    Message("Поток закончил работу...");
  EndFunction

Mutex.ExecuteFunctionInSeparateThread("Подписчик",0);

аКодКанала:=BroadcastChannelSubscribe("Канал");
ИдСообщения:=1;
While ИдСообщения<=100 Do
  If BroadcastChannelSendMessage(аКодКанала,ИдСообщения,"")>0 Then
    ИдСообщения:=ИдСообщения+1;
  EndIf;
EndDo;
//Ожидания завершения потока после принятия сообщения 100
//Без этой паузы, поток можен быть завершен форсировано, так как текущий (родительский) поток будет завершен
Sleep(1000);

//Будет выведено:
//Получено сообщение с ID 1
//Получено сообщение с ID 2
//..
//Получено сообщение с ID 100
//Поток закончил работу...