| START() | Начать задачу. |
| TASKGETMSG() | Прочитать полученное сообщение. |
| TASKID() | Возвращает идентификатор задания. |
| TASKPEEKMSG() | Прочитать полученное сообщение. |
| TASKSENDMSG() | Отправить сообщение заданию. |
| TASKSTART() | Возобновить все задания, которые были остановлены. |
| TASKSTOP() | Остановить все задания, за исключением текущего. |
START(<vTask>, [<vPar1>,,, <vParN>]) --> <nTaskID>
Возвращает числовое значение - идентификатор задания.
START() запускает задачу в параллельном режиме и передает ей параметры <vPar1>,,, <vParN>
ts := @task2()
...
? START("task1", "Ann", "Jhon", "Mary")
...
? START(ts, 200, 100)
...
? START({|p1, p2| qout("Start code block"), ..., qout("Code block finished")})
...
function task1(a, b, c)
qout('Start task1')
...
qout('task1 finished')
return .T.
static function task2(x, y)
qout('Start task2')
...
qout('task2 finished')
return
Не зависит от платформ
TASKGETMSG() --> <vMsg>
No arguments
Возвращает полученные данные, что были отправлены функцией TASKSENDMSG().
TASKGETMSG() читает сообщение из входной очереди задания и возвращает его. Если в очереди нет сообщений - ожидает бесконечно.
static id
id := START("func1")
for i:=1 to 10
TASKSENDMSG(id, time())
sleep(i)
next
....
function func1()
do while .T.
? "task got: ", TASKGETMSG()
enddo
return
Не зависит от платформ
TASKID() --> <nTaskID>
No arguments
Возвращает идентификатор задания как числовое значение.
TASKID() возвращает идентификатор текущего задания <nTaskID> как числовое значение.
TASKSTOP() ? TASKID() TASKSTART()
Не зависит от платформ
TASKPEEKMSG() --> <vMsg>
No arguments
Возвращает полученные данные, что были отправлены функцией TASKSENDMSG().
TASKPEEKMSG() читает сообщение из входной очереди задания и возвращает его. Если в очереди нет сообщений - немедленно возвращает NIL.
static id
id := START("func1")
for i:=1 to 10
TASKSENDMSG(id, time())
sleep(i)
next
....
function func1()
do while .T.
? "task got: ", TASKPEEKMSG()
enddo
return
Не зависит от платформ
TASKSENDMSG(<nReceiverID>, <vMsg>[, <lWait>]) --> <lResult>
Возвращает логическое значение <lResult>, TRUE если сообщение было доставлено.
TASKSENDMSG() отправляет значение <vMsg> заданию с идентификатором <nReceiverID> и возвращает TRUE, если операция завершилась успешно.
static id
id := START("func1")
for i:=1 to 10
TASKSENDMSG(id, time())
sleep(i)
next
....
function func1()
do while .T.
? "task got: ", TASKGETMSG()
enddo
return
Не зависит от платформ
TASKSTART() --> NIL
No arguments
Возвращает NIL.
TASKSTART() возобновляет все задания, которые были остановлены функцией TASKSTOP().
function Task_stop() TASKSTOP() .... return .... Task_stop() TASKSTART()
Не зависит от платформ
TASKSTOP() --> NIL
No arguments
Возвращает NIL.
TASKSTOP() останавливает все задания, за исключением текущего.
function Task_stop() TASKSTOP() .... return
Не зависит от платформ
| Пред. | Начало | След. |
| SERIAL I/O | Уровень выше | CODEBLOCK |