<< 向前        下一页 >>

ID : 5038

排他处理的程序示例3

因错误中断排斥处理时的处理示例。按照顺序执行Pro1-> Pro2,通常进行排斥处理使I1、I2、I3成为连续数。发生错误时,通过复位处理应对不匹配状态。

'!TITLE "排他处理的程序示例3"
' 程序名 "Pro1"
Sub Main

 Dim n as integer
 Dim id as integer
 id = CreateMutex( "Mutex-A" )

	For n = 3 To -3 Step -1
	 
	 TakeMutex id

	 '通过随机数变为不匹配的状态
	 I1 = rnd*100
	 I2 = rnd*100
	 I3 = rnd*100

	  Run Pro2

	  I1 = 1
	  I2 = 2

	  ' 通过发生错误,模拟创建不匹配状态
	  I0 = I0 / n ' 因0%、错误 Mutex对象变为错误状态。

	  I3 = 3

	 GiveMutex id
	 
	Next

 ' 使I1开始为连续数

 DeleteMutex id

End Sub
'!TITLE "排他处理的程序示例3"
' 程序名 "Pro2"
Sub Main

 Dim id as integer
 id = CreateMutex( "Mutex-A" )

 On Error Goto MutexErr

 TakeMutex id ' Mutex对象为错误状态时,发生错误

  PrintDbg I1, I2, I3 '务必为连续数

 GiveMutex id

 DeleteMutex id

 Exit Sub

MutexErr:

 '匹配状态时设定(一例)
  I1 = 1
  I2 = 2
  I3 = 3
 
 ResetMutex id '清零错误状态
 Resume '再次从发生错误处开始重新进行

End Sub

ID : 5038

<< 向前        下一页 >>