MC-Basic:SEMAPHORETAKE/zh-hans
语言: | English • 中文(简体) |
---|
缩写
semTake
格式
<lval> = SemTake(<semaphore name> { , <timeout>})
适用版本
从版本3.7.x起
描述
SEMTAKE获取可用于多任务同步的信号量。 如果信号量空闲,则SEMTAKE返回1,信号量标记为“已采用”。 如果信号量已被占用,SEMTAKE返回0,信号量的状态不变。 SEMTAKE可用于阻止同时访问系统中的共享资源或关键用户软件部分。
如果超时,系统将尝试获取指定的时间量的信号量。
Semtake可以在指定的超时之前返回而不需要获取信号量,因此检查返回值是非常重要的。
类型
Long
取值范围
return value: 0 = 不成功 (信号没有采取)
1 = 成功(信号已采取)
<timeout>: 0 to 5000
单位
milliseconds
默认值
0
使用范围
任务区, 终端
限制
例子
While semTake(SEM1,1000) = 0 ‘等待释放信号
’wait for resource
End While
REM critical section code
……
……
semTake(SEM1) ‘take the semaphore
semTake(SEM1 , 100 )