powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как создать фоновый процесс без window?
4 сообщений из 4, страница 1 из 1
Как создать фоновый процесс без window?
    #32406692
Garyman888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеется приложение, в котором вызывается по таймеру (каждые 3 минуты)userobject, в котором выполняетя скрипт.
Если вызывать userobject при открытом window - все нормально отрабатывает через заданные интервалы времени. Если вызывать userobject из app, не используя window вообще, то отрабатывает один раз и приложение закрывается.
Как в РВ создать фоновый процесс не используя объекта типа window?
...
Рейтинг: 0 / 0
Как создать фоновый процесс без window?
    #32406710
Геннадич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня всё получилось:

Приложение:
$PBExportHeader$tst.sra
forward
global transaction sqlca
global dynamicdescriptionarea sqlda
global dynamicstagingarea sqlsa
global error error
global message message
end forward

global type tst from application
end type
global tst tst

on tst.create
appname = "tst"
message = create message
sqlca = create transaction
sqlda = create dynamicdescriptionarea
sqlsa = create dynamicstagingarea
error = create error
end on

on tst.destroy
destroy( sqlca )
destroy( sqlda )
destroy( sqlsa )
destroy( error )
destroy( message )
end on

event open;nuo_tim my_uo
my_uo = Create nuo_tim
my_uo.Start(1)
DO WHILE true
Yield()
If my_uo.ii_count > 10 Then
Halt Close
End If
LOOP


end event




И сам объект: $PBExportHeader$nuo_tim.sru
forward
global type nuo_tim from timing
end type
end forward

global type nuo_tim from timing
end type
global nuo_tim nuo_tim

type variables
int ii_count

end variables
event timer;integer li_FileNum

li_FileNum = FileOpen("C:\EMPLOYEE.TXT", LineMode!, Write!, LockWrite!, Append!)
If li_FileNum <= 0 Then Return
FileWrite(li_FileNum, String(Today(), "dd.mm.yyyy hh:mm:ss:fff") + "~r~n")
FileClose(li_FileNum)
ii_count++
Return
end event
on nuo_tim.create
call timing::create
TriggerEvent( this, "constructor" )
end on

on nuo_tim.destroy
call timing::destroy
TriggerEvent( this, "destructor" )
end on

event constructor;ii_count = 0
end event
...
Рейтинг: 0 / 0
Как создать фоновый процесс без window?
    #32407732
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Garyman888 , ответ прост, надо открыть невидимое окно.

Вариант, предложенный Геннадичем - классический "в лоб".
Его
Код: plaintext
1.
DO WHILE true 
Yield() 

просто жрёт CPU неизвестно зачем...
...
Рейтинг: 0 / 0
Как создать фоновый процесс без window?
    #32422126
Garyman888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пока у меня так и работает - вызывается из невидимого окна.
Но хотелось бы чтобы было красиво.
Спасибо за ответы.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Как создать фоновый процесс без window?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]