我正在尝试将一些报告的处理移动到除主线程之外的不同tcl线程,因为当报告很长时它会停止主应用程序,我有一些C函数需要从这个调用返回需要它的变量的新线程。这就是我现在正在尝试做的事情
Tcl代码:
proc pdfthread {} \
{
set threadID [thread::create]
set result "" //"getAlarmList" is the C function the rest is the parameters
thread::send $threadID [list getAlarmList 304 {2013-10-16 15:10:26} {2013-10-16 15:13:00}] result
.sumRepTxt insert end "Count = $result\n" //.sumRepTxt is just a text widget
}
截至目前,我收到无效的命令名称“getAlarmList”
答案 0 :(得分:2)
我想我找到了一种方法,我猜新线程不知道C库所以如果我加载C函数所在的库,那么它会识别命令,所以这样:
proc pdfthread {} \
{
set threadID [thread::create {
load ./samples.so
thread::wait}]
set result ""
thread::send $threadID [list getAlarmList 304 {2013-10-16 15:10:26} {2013-10-16 15:13:00}] result
.sumRepTxt insert end "Count = $result\n"