|
哥们,你这临界区有问题啊,应该这样的吧。
var CriHandle
function visit(visitthread)
criticalenter(CriHandle)
for(var i = 0; i < 4; i++)
//messagebox("线程"+ visitthread +"访问")
traceprint("线程"& visitthread &"访问")
end
criticalleave(CriHandle)
return true
end
function button0_click()
//这里添加你要执行的代码
CriHandle=criticalcreate()
var handleA=threadbegin("visit","A")
var handleB=threadbegin("visit","B")
traceprint("////////////////////分隔线/////////////////////////")
//threadwaitfor(handleA,60*1000)//最长等待线程句柄1的线程执行1分钟
//threadwaitfor(handleB,60*1000)//最长等待线程句柄2的线程执行1分钟
//必须加上下面语句,否则线程还没运行结束就删除临界区,程序崩溃
while(!threadgetstatus(handleA)&&!threadgetstatus(handleB)==true)
criticaldelete(CriHandle)
exit()
end
return true
end
|
|