как прервать задачу при появлении активности

Обсуждение программ nnCron и nnCron LITE

как прервать задачу при появлении активности

Postby AlikasS » Sat, 01 May 2010, 18:08

не отслеживая запущенные задачей процессы
Code: Select all
<%
: TERMINATE ( -- ) DESTROY-HEAP -1 ExitThread ;
: save2num->adr ( id pause  -- adr ) HERE ROT , SWAP , DUP DP ! ;
: adr->2num ( adr -- id pause ) DUP @ SWAP CELL+ @ ;
: ?IDLEUSER 1100 PAUSE BEGIN IDLE: 1 WHILE 1000 PAUSE REPEAT ;
WINAPI: OpenThread KERNEL32.DLL
: KILLTREAD ?DUP IF 0 1 OpenThread ?DUP    IF STOP ASCIIZ> S" Задача " 2SWAP S+ S"  остановлена по условию активности юзера" S+ CRON-LOG EXIT
   ELSE DROP EXIT THEN
ELSE DROP EXIT THEN ;
:NONAME adr->2num SWAP ?IDLEUSER KILLTREAD TERMINATE ; TASK: ~KILLTREAD
: USERNOTIDLE GetCurrentThreadId CUR-TASK-NAME S>ZALLOC save2num->adr ~KILLTREAD START ;
%>

пример использования
Code: Select all
#( большая_долгая_задча
\ задача будет работать пока юзер не работает
Action:
USERNOTIDLE
\ что-то много делаем
)#
User avatar
AlikasS
 
Posts: 1434
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Return to nnCron forum (Russian)

Who is online

Users browsing this forum: Bing [Bot], Google [Bot] and 1 guest