bgsynchronizer.pro
来自「Visual Prolog 7.1的一些学习资料,希望对您有用」· PRO 代码 · 共 54 行
PRO
54 行
/*****************************************************************************
Copyright (c) Prolog Development Center A/S
******************************************************************************/
implement bgSynchronizer
open core
constants
className = "background/bgSynchronizer".
classVersion = "$JustDate: 2007-04-20 $$Revision: 2 $".
constants
backgroundEvent : integer = 111111.
class facts
dontGC : (runnable Runnable).
clauses
tryHandleEvent(vpiDomains::e_User(backgroundEvent, Data)) :-
Runnable = uncheckedConvert(core::runnable, Data),
retractAll(dontGC(Runnable)),
!,
Runnable(),
succeed().
clauses
postRunnable(Runnable) :-
AppWin = applicationWindow::get(),
Persistent = bgJobSupport::makeRunnablePersistent(Runnable),
assert(dontGC(Persistent)),
Data = uncheckedConvert(integer, Persistent),
AppWin:postUserEvent(backgroundEvent,Data).
clauses
postResult(Result) :-
postRunnable(Result:result).
clauses
write(...) :-
postResult(bgmsg::newWrite(...)).
clauses
writef(F, ...) :-
postResult(bgmsg::newWritef(F, ...)).
clauses
startJob(Job) = bgJobSupport::startJob(Job).
clauses
classInfo(className, classVersion).
end implement bgSynchronizer
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?