<< 向前        下一页 >>

ID : 5164

MutexState

功能

返回Mutex对象的状态。

格式

MutexState(MutexID)

指定项目

MutexID
通过整数型数据指定Mutex对象的ID。

返回值

返回表示指定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与嵌套不对应。调出处理内的回避示例。

在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

<< 向前        下一页 >>