MC-Basic:SEMAPHORETAKE/zh-hans

From SoftMC-Wiki
Jump to: navigation, search
语言: 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 )

参见