这段程序是在一个线程中执行的代码
While Ifmotor = True
Select Case do_work
Case 0 '打开串口
Dim portnumber As String = "COM2"
IsMotorOpen(portnumber)
Dim RWL As New ReaderWriterLock
RWL.AcquireWriterLock(Timeout.Infinite) 'mydate文件写入锁
Ifmotor = False
RWL.ReleaseLock()
Case 1 '关闭串口
do_deInit()
Ifmotor = False
Case 2 '打开伺服
do_StartServo()
Ifmotor = False
Case 3 '关闭伺服
do_ShutDownServo()
Ifmotor = False
Case 4 '方位向置位
do_Motor_SetPositionH(MyposH)
Ifmotor = False
Case 5 '俯仰向置位
do_Motor_SetPositionV(MyposV)
Ifmotor = False
Case 6 '同时置位
do_Motor_SetPosition(MyposH, MyposV)
Ifmotor = False
Case 7
Case 8
End Select
End While
End Sub
这个是在另一个线程中改变公共变量的代码
Ifmotor = True : do_work = 2 '打开伺服
但是实际执行的过程中由于跨城的原因第一段代码是不进入执行的,如何处理?