我正在尝试使用用C ++编写的包(共享库)运行tclsh。该程序包需要一个类似于Windows PumpMessage的机制,一旦通过程序包req加载,就会在主线程上定期调用。
有了愿望,我只需通过Tcl_CreateTimerHandler
注册一个计时器处理程序就行了。
使用tclsh,事件循环不存在,所以我无法从我的包中挂钩。我尝试设置主循环(Tcl_SetMainLoop
),但是它被调用一次,然后它被设置为NULL。
关于如何实现这一目标的任何想法?
答案 0 :(得分:0)
在查看tk代码后得到它。主循环本身需要循环(它不像我预期的那样在循环中调用)。
如果设置为tcl的主循环执行while循环,则它正常工作。