0

以下のコードでバックグラウンドで動作する関数を登録しました。

XtAppAddWorkProc(app, (XtWorkProc)NotifyEntryCallback, (XtPointer)ent);

この関数をタスクで 1 回呼び出すだけで問題ありません (たとえば、ボタンをクリックします)。しかし、そのタスクで2回以上呼び出すと、NotifyEntryCallback何度も呼び出されます(無限)。

XtAppAddWorkProc登録された関数を削除するために使用関数を保存しようとしましXtRemoveWorkProcたが、それでも機能しません。

私は何度も Google を利用していますが、なぜこのようなことが起こるのかわかりません。解決するのを手伝ってください。

4

1 に答える 1

0

最後に、解決策を見つけます。同じ問題に直面している人のために共有します:

XtWorkProctell システムコールの戻り値は、登録された関数を再度呼び出すかどうか。この場合、再度呼び出されたくない場合はNotifyEntryCallback必要です。return True

参考リンク: http: //home.soka.ac.jp/~unemi/Motif/man3/XtWorkProc.html

于 2015-01-02T02:34:54.220 に答える