ID : 5164
MutexState
功能
返回Mutex对象的状态。
解说
返回Mutex对象的状态。
返回值
返回值 | 状态 |
---|---|
-1 | 指定id的Mutex对象不存在。 |
0 | Mutex对象为“Unlocked”状态。 |
1 | Mutex对象为“Locked”状态。(自动任务为Lock状态。) |
2 | Mutex对象为“Locked”状态。(其它任务为Lock状态。) |
65536(&H10000) | Mutex对象为“Unlocked”状态、错误状态。 |
65537(&H10001) | Mutex对象为“Locked”状态、错误状态。(自动任务为Lock状态。) |
65538(&H10002) | Mutex对象为“Locked”状态、错误状态。(其它任务为Lock状态。) |
错误状态时为+65536(&H10000)。
相关项目
Mutex对象、 CreateMutex、 DeleteMutex、 TakeMutex、 GiveMutex、 ResetMutex、 MutexID、 MutexState、 排他处理的程序示例1、 排他处理的程序示例2、 排他处理的程序示例3
注意事项
应用示例
Mutex与嵌套不对应。调出处理内的回避示例。
在Pro1内执行通用处理“FuncA”。对FuncA进行排斥处理,在Pro1的排斥处理内调出FuncA。FuncA内的TakeMutex通过Pro1完成Lock,因此通过。FuncA的GiveMutex处于Unlocked状态,因此,FuncA中执行TakeMutex前的状态不同,条件也不同。
<Pros1.pcs>
#Include "FancA.pcs"
Sub Main
Dim id As Integer
id = CreateMutex(S[10])
TakeMutex id
Call FuncA(id)
' statements
GiveMutex id
End Sub
<FuncA.pcs>
通用处理
Sub FuncA(ByVal id As Integer)
Dim iState As Integer
iState = MutexState(id)
TakeMutex id
'Statements
If iState <> 1 Then
GiveMutex id
End If
End Sub
ID : 5164