我正在使用pthread在一个C线程中进行编程工作,该线程没有与Tcl解释器相关联。它具有指向现有Tcl线程的ThreadId和TclInterp的指针,并希望将脚本发送到此Tcl线程以进行异步评估。
我可以使用XThreadUtil同步地完成此操作,但只能在阻塞Tcl线程直到C线程执行完毕时才能完成。我真的需要异步行为。即,所需的事件顺序是:
1. Tcl线程调用生成C线程并立即返回的命令; 2. Tcl线程的事件循环恢复,C线程同时执行其工作; 3. 当C线程完成工作时,它会向Tcl线程的事件队列发布事件并退出; 4. Tcl线程在准备好时处理事件。
我尝试使用Tcl线程通知API(Tcl_ThreadQueueEvent/Tcl_ThreadAlert)和async API(Tcl_AsnycCreate/Tcl_AsyncMark),但没有太多运气。我还没有找到太多示例。非常感谢任何帮助。
我可以使用XThreadUtil同步地完成此操作,但只能在阻塞Tcl线程直到C线程执行完毕时才能完成。我真的需要异步行为。即,所需的事件顺序是:
1. Tcl线程调用生成C线程并立即返回的命令; 2. Tcl线程的事件循环恢复,C线程同时执行其工作; 3. 当C线程完成工作时,它会向Tcl线程的事件队列发布事件并退出; 4. Tcl线程在准备好时处理事件。
我尝试使用Tcl线程通知API(Tcl_ThreadQueueEvent/Tcl_ThreadAlert)和async API(Tcl_AsnycCreate/Tcl_AsyncMark),但没有太多运气。我还没有找到太多示例。非常感谢任何帮助。