IF Computer > IF/Prolog > Manuals > IF/Prolog V4.1 マニュアル > IF/Prolog Interfaces > Athena インタフェースマニュアル > X11.4 Toolkit によるプログラミング > イベントソ−スの追加とバックグラウンド動作 > xtAddWorkProc/3, xtRemoveWorkProc/1

xtAddWorkProc/3, xtRemoveWorkProc/1

IF/Prolog by Siemens
MINERVA superseeded IF/Prolog. Please see http://www.ifcomputer.co.jp/MINERVA for details.

We discontinued to sell IF/Prolog Dec 31. 2003. For current customers, we continue to provide professional support for IF/Prolog until Dec 31, 2008.

xtAddWorkProc(+WorkName, +WorkPredicate, +ClientData) xtRemoveWorkProc(WorkName)

intrinsicsのXtAdd/RemoveWorkProc()に相当します。

xtAddWorkProc/3は、MainLoopからの未解決のイベントがない場合に呼び出されるべきWorkPredicate/2を登録します。

WorkPredicateは、2引数の述語でなければなりません。これは未解決なイベントがない時に、以下に示す形式で呼び出されます。 WorkPredicate(WorkName, ClientData).

WorkPredicate/2は、ユ−ザインタフェ−スをアクティブな状態に保つために、1秒以内に終了するようにした方がよいでしょう。

WorkPredicate/2が失敗した時には、自動的に登録が取り消されます。

[user]. | write_working(WorkName, ClientData) :- write('working '), write(WorkName), write(' with client_data '), write(ClientData), nl, write('please enter true. or fail.'), nl, read(A), A. |EOF yes ?- xtAddWorkProc(work_question, write_working, xxx), xtMainLoop. working work_question with client_data xxx please enter true. or fail. true. working work_question with client_data xxx please enter true. or fail. true. working work_question with client_data xxx please enter true. or fail. fail.

yes ?- _

<xtAddWorkProc/3> work_name_already_used WorkNameで指定した仕事がすでに存在している illegal_work_predicate WorkPredicate/2が存在していない

<xtRemoveWork/1> illegal_work この名前の仕事は登録されていない

document: http://www.ifcomputer.co.jp/IFProlog/Manuals/v4.1/advanced_feature/athena/xtprog/addevent/xtadwp/print_en.html
published 2008/12/1 update 1995/11/7 (c) 1996-2006 IF Computer Japan
IF Computer 5-28-2 Sendagi, Bunkyo-ku Tel +81-3-5814-3352 start (AT) ifcomputer.com
Customer Support Tokyo 113-0022 Japan   http://www.ifcomputer.com
Back> managed with ubiCMS