Перейти к основному содержимому
Версия: 4.x

Оператор NEWTHREAD

Оператор NEWTHREAD - создание действия, которое выполняет другое действие в новом потоке.

Синтаксис

NEWTHREAD action [CONNECTION connectionExpr]
NEWTHREAD action SCHEDULE [PERIOD periodExpr] [DELAY delayExpr]

Описание

Оператор NEWTHREAD создает действие, которое выполняет другое действие в новом потоке. При указании ключевого слова CONNECTION можно указать соединение, которое будет использовано при выполнении действия. Также есть вторая форма оператора NEWTHREAD для запуска действия с помощью планировщика. Использование этой формы определяется наличием ключевого слова SCHEDULE.

Параметры

  • action

    Контекстно-зависимый оператор, описывающий действие, которое должно быть выполнено в новом потоке.

  • connectionExpr

    Выражение, значением которого является свойство, возвращающее объект класса SystemEvents.Connection. Определяет соединение, для которого будет выполнено данное действие.

  • periodExpr

    Выражение, значением которого является свойство, возвращающее продолжительность периода повторения выполнения действия в миллисекундах. Если не указано, то действие.будет выполнено один раз.

  • delayExpr

    Выражение, значением которого является свойство, возвращающее задержку первого выполнения действия в миллисекундах. Если не указано, то действие.будет выполнено без задержки.

Примеры

testNewThread ()  {
//Показ всем сообщения 'Сообщение'
FOR user(Connection conn) AND connectionStatus(conn) == ConnectionStatus.connectedConnection AND conn != currentConnection() DO {
NEWTHREAD MESSAGE 'Сообщение'; CONNECTION conn;
}

//Выполнение действия action с периодичностью в 10 секунд и задержкой 5 секунд
NEWTHREAD MESSAGE 'Hello World'; SCHEDULE PERIOD 10000 DELAY 5000;
}