你代码写错了,不是这么玩的
走C,开出线程走A,去创建临界并赋值x,此时调用B,
A虽然在临界里,但是B去操作x因为没进临界所以临界里的事跟他没什么关系,照样可以操作
全局 int hwndlj,x
function bool A()
int i
while(true)
hwndlj=thread.createcritical()
thread.thread.entercritical(hwndlj)
while (i<100)
x=0
i=i+1
等待100毫秒
endwhile //这循环是为了让你看清楚,暂时困住线程
thread.leavecritical(hwndlj)
thread.deletecritical(hwndlj) //注意这里不能出去了就删,因为后面有个线程要进来,会崩的
endwhile
return true
endfunction
function bool B()
thread.deletecritical(hwndlj)
while(true)
if (x==1)
消息框
else
x=1
endif
endwhile
return true
endfunction
照这样试试吧,i=100之后,x才会被改成1 |